renaming files based on MC's suggested conventions
authorJames Craig <jcraig@apple.com>
Thu, 08 Nov 2012 13:57:08 -0800
changeset 10 71037dd45025
parent 9 1e9250559af5
child 11 6272d00a4692
renaming files based on MC's suggested conventions
src/events.html
src/indie-ui-context.html
src/indie-ui-events.html
src/user_context.html
--- a/src/events.html	Thu Nov 08 13:54:00 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,407 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-us">
-	<head>
-		<meta http-equiv="Content-type" content="text/html; charset=utf-8">
-		<title>IndieUI: Events 1.0</title>
-		<link href="./csi/screen.css" rel="stylesheet" type="text/css">
-		
-		<!-- 
-      === NOTA BENE ===
-      For the three scripts below, if your spec resides on dev.w3 you can check them
-      out in the same tree and use relative links so that they'll work offline,
-     -->
-		<script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
-		<script class="remove">
-      var respecConfig = {
-          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
-          specStatus:           "ED",
-          
-          // the specification's short name, as in http://www.w3.org/TR/short-name/
-          shortName:            "indie-ui-events",
-
-          // if your specification has a subtitle that goes below the main
-          // formal title, define it here
-          // subtitle   :  "an excellent document",
-
-          // if you wish the publication date to be other than today, set this
-          // publishDate:  "2009-08-06",
-
-          // if the specification's copyright date is a range of years, specify
-          // the start date here:
-          // copyrightStart: "2012",
-
-          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
-          // and its maturity status
-          // previousPublishDate:  "1977-03-15",
-          // previousMaturity:  "WD",
-
-          // if there a publicly available Editor's Draft, this is the link
-          edDraftURI:           "http://dvcs.w3.org/hg/IndieUI/raw-file/tip/events/indie-ui-events.html",
-
-          // if this is a LCWD, uncomment and set the end of its review period
-          // lcEnd: "2009-08-05",
-
-          // if you want to have extra CSS, append them to this list
-          // it is recommended that the respec.css stylesheet be kept
-          extraCSS:             [
-            "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css",
-            "./csi/screen.css"
-          ],
-
-          // editors, add as many as you like
-          // only "name" is required, also can have url, company, companyURL in comma separated list
-          editors:  [
-              { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
-              { name: "Michael Cooper", company: "W3C", companyURL: "http://www.w3.org/" },
-          ],
-
-          // authors, add as many as you like. 
-          // This is optional, uncomment if you have authors as well as editors.
-          // only "name" is required. Same format as editors.
-
-          authors:  [
-            { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
-          ],
-          
-          // name of the WG
-          wg:           "Independent User Interface (Indie UI) and Web Events Working Groups",
-          
-          // URI of the public WG page
-          wgURI:        "http://www.w3.org/WAI/IndieUI/",
-          
-          // name (without the @w3c.org) of the public mailing to which comments are due
-          wgPublicList: "public-indie-ui-comments",
-          
-          // URI of the patent status for this WG, for Rec-track documents
-          // !!!! IMPORTANT !!!!
-          // This is important for Rec-track documents, do not copy a patent URI from a random
-          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
-          // Team Contact.
-          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/54953/status",
-      };
-    </script>
-		
-		
-	</head>
-	<body>
-
-		<section id="abstract">
-			<p class="placeholder">Placeholder abstract.</p>
-		</section>
-
-		<section id="sotd">
-		</section>
-		
-		<!-- :::::::::::::::::::: INTRO :::::::::::::::::::: -->
-		<section id="intro" class="informative">
-			<h2>Introduction</h2>
-			<p>This specification, in conjunction with the <a href="./user_context.html">User Context Module</a>, is intended address the problem of device-, <abbr title="operating system">OS</abbr>-, and localization-independent control of web content. </p>
-			<p class="placeholder">placeholder for remaining intro</p>
-		</section>
-		
-		<!-- :::::::::::::::::::: UI Request Event Interfaces :::::::::::::::::::: -->
-		<section id="RequestEvents">
-			<h2><abbr title="User Interface">UI</abbr> Change Request Events</h2>
-			<p>The core principle behind <abbr title="User Interface">UI</abbr> Change Request Events is that they operate on a completely backwards-compatible, opt-in basis. In other words, the web application author has to be aware of these events and register event listeners, or the user agent and assistive technology behave as they normally would.</p>
-			<p><strong>Change request events do not cause any direct manipulation or mutation of the DOM.</strong> Instead, the event object conveys the user's intent to the web application, and allows the web application to make the appropriate changes to the DOM, on behalf of the user agent or assistive technology. If a web application is authored to understand the change request event, it can cancel the event using <code>preventDefault()</code>, which informs the user agent or assistive technology that the event has been captured and understood. If a web application does not cancel any change request event, the user agent or assistive technology can then attempt fallback behavior or communicate to the user that the input has not been recognized.</p>
-			<p class="note" title="Informative">Note: The UIRequestEvent interface does not inherit from <a href="#AccessibilityEvent">AccessibilityEvent</a> (proposed in the following section), because we believe it will ultimately be useful outside the context of assistive technology. This may prove to be a lightweight, performant alternative to mutation events. For example, <code>DOMAttrChangeRequest</code> instead of <code>DOMAttrModified</code>.</p>
-			<p class="ednote">Event fires on document.activeElement (or AT equivalent) if applicable, or otherwise document.body.</p>
-			<p class="ednote">These events should be asynchronous, but when used in conjunction with keyboard events, should fire after keydown, but before both keyup and keypress.</p>
-
-			<!-- :::::::::::::::::::: UIRequestEvent :::::::::::::::::::: -->
-			<section id="UIRequestEvent">
-				<h3><strong>Interface <em>UIRequestEvent</em></strong></h3>
-
-				<div class="idlwrapper">
-					<pre class="idl">interface UIRequestEvent : UIEvent {
-  
-  <span class="comment">// UA or AT notifies web app of a change request</span>
-<!-- removed from IDL 
-  const unsigned short    UNDO     =  1;
-  const unsigned short    REDO     =  2;
-  const unsigned short    DISMISS  =  3;
-  const unsigned short    DELETE   =  4;
-  const unsigned short    EXPAND   =  5;
-  const unsigned short    COLLAPSE =  6;
-
-  <span class="comment">// expect more type constants will be added for other event types…</span>
-  <span class="comment">// ZOOM_IN / ZOOM_OUT ? perhaps that should just be slider widget, covered under ValueChangeRequest</span>
-  
-  readonly attribute unsigned short    eventType;
--->
-  
-  void initUIRequestEvent(
-         in DOMString typeArg,
-         in boolean canBubbleArg,
-         in boolean cancelableArg,
-         in views::AbstractView viewArg,
-         in long detailArg,
-         <!--in unsigned short eventTypeArg-->
-       );
-};</pre>
-				</div>
-				<h4>The different types of UIRequestEvents that can occur are:</h4>
-				<dl>
-					<dt><code class="event">UndoRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends an 'undo' request to the web application.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-					<dt><code class="event">RedoRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends a 'redo' request to the web application.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-					<dt><code class="event">DismissRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends a 'dismiss' request to the web application.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-					<dt><code class="event">DeleteRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends a 'delete' request to the web application.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-					<dt><code class="event">ExpandRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology conveys intent to reveal information in a collapsed section (e.g. a disclosure widget) or branch node in a hierarchy (e.g., a tree view).</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-					<dt><code class="event">CollapseRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology conveys intent to hide or collapse information in an expanded section (e.g. a disclosure widget) or branch node in a hierarchy (e.g., a tree view).</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-				</dl> 
-				<div class="example" title="Informative">
-					<h4>Examples</h4>
-					<ol>
-						<li>Users, wanting to 'undo' a discrete action in a web application, can indicate their intent a number of ways, including pressing <kbd>Control+Z</kbd> on Windows or Linux, <kbd>Command+Z</kbd> on Mac OS X, and even by shaking some accelerometer- or gyroscope-enabled mobile devices. User agents understanding this intent should initiate an <code>UndoRequest</code> event. Web authors who have registered for this event should process the event to determine whether to cancel the event. If the 'undo' action is understood in the context of the web application, web authors should undo the user's change, and cancel the event using the event object's <code>preventDefault()</code> method.</li>
-						<li>Users, wanting to 'escape from' or 'dismiss' a web application state (for example, closing a modal dialog), can indicate their intent a number of ways, most commonly by pressing <kbd>Escape</kbd> on keyboard-controlled operating systems<!--, or by using a two-finger <a href="http://www.apple.com/voiceover/info/guide/_1133.html">scrub gesture</a> in VoiceOver on iOS or Mac OS X-->. User agents understanding this intent should initiate an <code>DismissRequest</code> event. Web authors who have registered for this event should process the event to determine whether to cancel the event. If the 'dismiss' action is understood in the context of the web application, web authors should perform the appropriate action (such as closing the dialog), and cancel the event using the event object's <code>preventDefault()</code> method.</li>
-					</ol>
-				</div>
-			</section>
-			<!-- :::::::::::::::::::: END UIRequestEvent :::::::::::::::::::: -->
-
-			<!-- :::::::::::::::::::: UIScrollRequestEvent :::::::::::::::::::: -->
-			<section id="UIScrollRequestEvent">
-				<h3><strong>Interface <em>UIScrollRequestEvent</em></strong></h3>
-				<div class="idlwrapper">
-					<pre class="idl">interface UIScrollRequestEvent : UIRequestEvent {
-  
-  <span class="comment">// for custom scroll views or widgets (e.g. carousels, lists, grids)</span>
-  const unsigned short    LEFT          =  1;
-  const unsigned short    UP            =  2;
-  const unsigned short    RIGHT         =  3;
-  const unsigned short    DOWN          =  4;
-  const unsigned short    LEFT_LIMIT    =  5;
-  const unsigned short    TOP_LIMIT     =  6;
-  const unsigned short    RIGHT_LIMIT   =  7;
-  const unsigned short    BOTTOM_LIMIT  =  8;
-  <span class="comment">// Note: these constants will likely change dramatically based on discussion from the IndieUI Face-to-Face. </span>
-  
-  readonly attribute unsigned short   scrollType;
-  
-  void initUIScrollRequestEvent(
-         in DOMString typeArg,
-         in boolean canBubbleArg,
-         in boolean cancelableArg,
-         in views::AbstractView viewArg,
-         in long detailArg,
-         in unsigned short eventTypeArg
-         in unsigned short scrollTypeArg
-       );
-};</pre>
-				</div>
-				<h4>The single type of UIScrollRequestEvent that can occur is:</h4>
-				<dl>
-					<dt><code class="event">ScrollRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends a scroll request to the web application. Scroll events need only be used on custom scroll views (lists and grids showing data subsets, carousels, etc.), as user agents and assistive technologies already manage scrolling of native scroll views.</p>
-						<p class="note" title="Informative">Note: The scroll type constants are more or less equivalent to expected behavior for <kbd>PageUp</kbd>/<kbd>PageDown</kbd> and <kbd>Home</kbd>/<kbd>End</kbd> keys on native scroll views, but also allow horizontal scrolling.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>scrollType</code></li>
-						</ul>
-					</dd>
-				</dl>
-			</section>
-			<!-- :::::::::::::::::::: END UIScrollRequestEvent :::::::::::::::::::: -->
-
-			<!-- :::::::::::::::::::: UIValueChangeRequestEvent :::::::::::::::::::: -->
-			<section id="UIValueChangeRequestEvent">
-				<h3><strong>Interface <em>UIValueChangeRequestEvent</em></strong></h3>
-				<div class="idlwrapper">
-					<pre class="idl">interface UIValueChangeRequestEvent : UIRequestEvent {
-  
-  <span class="comment">// value changes (e.g. ranges)</span>
-  const unsigned short    INCREMENT        =  1;
-  const unsigned short    INCREMENT_SMALL  =  2;
-  const unsigned short    INCREMENT_LARGE  =  3;
-  const unsigned short    INCREMENT_MAX    =  4;
-  const unsigned short    DECREMENT        =  5;
-  const unsigned short    DECREMENT_SMALL  =  6;
-  const unsigned short    DECREMENT_LARGE  =  7;
-  const unsigned short    DECREMENT_MIN    =  8;
-  <span class="comment">// Note: these constants will likely change dramatically based on discussion from the IndieUI Face-to-Face. </span>
-  
-  readonly attribute unsigned short   changeType;
-  
-  void initUIValueChangeRequestEvent(
-         in DOMString typeArg,
-         in boolean canBubbleArg,
-         in boolean cancelableArg,
-         in views::AbstractView viewArg,
-         in long detailArg,
-         in unsigned short eventTypeArg,
-         in unsigned short changeTypeArg
-       );
-};</pre>
-				</div>
-				<h4>The single type of UIValueChangeRequestEvent that can occur is:</h4>
-				<dl>
-					<dt><code class="event">ValueChangeRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends a value change request to the web application.</p>
-						<p>Web authors <strong class="rfc2119">should</strong> code applications to accept all values of the <code>changeType</code> argument. For example, if there is no special behavior for <code>INCREMENT_SMALL</code> or <code>INCREMENT_LARGE</code>, web applications would behave as if they had received a basic <code>INCREMENT</code> change type.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>eventType</code></li>
-						</ul>
-					</dd>
-				</dl>
-				
-				<div class="example" title="Informative">
-					<h4>Example</h4>
-					<p>Users, wanting to change the value of a custom range widget (slider, media progressbar, etc.) in a web application, can indicate their intent a number of ways, including pressing various keys (<kbd>Up</kbd>, <kbd>Down</kbd>, <kbd>Left</kbd>, <kbd>Right</kbd>, <kbd>PageUp</kbd>, <kbd>PageDown</kbd>, <kbd>Home</kbd>, <kbd>End</kbd>) on most keyboard-controlled interfaces, and through gestures on many touch-enabled interfaces. User agents understanding this intent should initiate a <code>ValueChangeRequest</code> event. Web authors who have registered for this event, should process the event to determine whether to cancel the event. If the value change action is understood in the context of the web application, web authors should change the value of the associated widget by an amount determined via the <code>changeType</code> argument, and cancel the event using the event object's <code>preventDefault()</code> method. If the event is not cancelled by the web author, user agents may pass the literal interaction event to the web application; in this case, in the form of a keypress or touch event.</p>
-				</div>
-					
-			</section>
-			<!-- :::::::::::::::::::: END UIValueChangeRequestEvent :::::::::::::::::::: -->
-
-			<!-- :::::::::::::::::::: DOMAttributeChangeRequestEvent :::::::::::::::::::: -->
-			<section id="DOMAttributeChangeRequestEvent">
-				<h3><strong>Interface <em>DOMAttributeChangeRequestEvent</em></strong></h3>
-				<div class="idlwrapper">
-					<pre class="idl">interface DOMAttributeChangeRequestEvent : UIRequestEvent {
-  
-  readonly attribute DOMString    attrName;
-  readonly attribute DOMString    newValue;
-  
-  void initDOMAttributeChangeRequestEvent(
-         in DOMString typeArg,
-         in boolean canBubbleArg,
-         in boolean cancelableArg,
-         in views::AbstractView viewArg,
-         in long detailArg,
-         in unsigned short eventTypeArg,
-         in DOMString attrNameArg,
-         in DOMString newValueArg
-       );
-};</pre>
-				</div>
-				<h4>The single type of DOMAttributeChangeRequestEvent that can occur is:</h4>
-				<dl>
-					<dt><code class="event">DOMAttrChangeRequest</code></dt>
-					<dd>
-						<p>Initiated when the user agent or assistive technology sends an attribute change request to the web application. In order for web applications to understand the intent of change request events from the user agent or assistive technology, these change requests should be limited to attributes for which a change in value indicates a discrete, defined action for known types of widgets and UI elements.</p>
-						<p class="note" title="Informative">Note: Currently, this limitation indicates that <code>DOMAttrChangeRequest</code> only applies to WAI-ARIA widgets, but it has the potential to be used with future iterations of HTML5 or <abbr title="Scalable Vector Graphics">SVG</abbr>.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: Yes</li>
-							<li>Context Info: <code>attrName</code>, <code>newValue</code></li>
-						</ul>
-					</dd>
-				</dl>
-				<div class="example" title="Informative">
-					<h4>Examples</h4>
-					<ol>
-						<li>If a user wanted to expand or collapse the current node of an ARIA tree, the assistive technology would initiate a <code>DOMAttrChangeRequest</code> event on the tree item element, with the <code>attrName</code> equal to <code>aria-expanded</code>, and the <code>newValue</code> equal to <code>true</code> or <code>false</code>.</li>
-						<li>If a user wanted to sort an ARIA grid on a particular column, the assistive technology would initiate a <code>DOMAttrChangeRequest</code> event on the column header element, with the <code>attrName</code> equal to <code>aria-sort</code>, and the <code>newValue</code> equal to <code>ascending</code> or <code>descending</code>.</li>
-					</ol>
-				</div>
-			</section>
-			<!-- :::::::::::::::::::: END DOMAttributeChangeRequestEvent :::::::::::::::::::: -->
-
-		</section>
-		<!-- :::::::::::::::::::: END UI Request Event Interfaces :::::::::::::::::::: -->
-
-		<!-- :::::::::::::::::::: Accessibility Event Interfaces :::::::::::::::::::: -->
-		<section id="AXevents">
-			<h2>Accessibility Events</h2>
-			<p>The following events are only initiated by assistive technologies, as opposed to mainstream user agents.</p>
-			
-			<!-- :::::::::::::::::::: AccessibilityEvent :::::::::::::::::::: -->
-			<section id="AccessibilityEvent">
-				<h3><strong>Interface <em>AccessibilityEvent</em></strong></h3>
-				<div class="idlwrapper">
-					<pre class="idl">interface AccessibilityEvent : UIEvent {
-  void initAccessibilityEvent(
-         in DOMString typeArg,
-         in boolean canBubbleArg,
-         in boolean cancelableArg,
-         in views::AbstractView viewArg,
-         in long detailArg
-       );
-};</pre>
-				</div>
-				<h4>The different types of AccessibilityEvents that can occur are:</h4>
-				<dl>
-					<dt><code class="event">ATFocusIn</code></dt>
-					<dd>
-						<p>Initiated when the assistive technology cursor or point of regard moves to a particular DOM node.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: No</li>
-							<li>Context Info: None</li>
-						</ul>
-					</dd>
-					<dt><code class="event">ATFocusOut</code></dt>
-					<dd>
-						<p>Initiated when the assistive technology cursor or point of regard leaves a particular DOM node.</p>
-						<ul>
-							<li>Bubbles: Yes</li>
-							<li>Cancelable: No</li>
-							<li>Context Info: None</li>
-						</ul>
-					</dd>
-				</dl>
-			</section>
-			<!-- :::::::::::::::::::: END AccessibilityEvent :::::::::::::::::::: -->
-			
-		</section>
-		<!-- :::::::::::::::::::: END Accessibility Event Interfaces :::::::::::::::::::: -->
-
-		<section class="placeholder">
-			<h2>Acknowledgements</h2>
-			<p>Placeholder for footer content (acknowledgements, terms, etc.)</p>
-		</section>
-		
-	</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/indie-ui-context.html	Thu Nov 08 13:57:08 2012 -0800
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html lang="en-us">
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+		<title>IndieUI 1.0: User Context</title>
+		<link href="./csi/screen.css" rel="stylesheet" type="text/css">
+		
+		<!-- 
+      === NOTA BENE ===
+      For the three scripts below, if your spec resides on dev.w3 you can check them
+      out in the same tree and use relative links so that they'll work offline,
+     -->
+		<script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
+		<script class="remove">
+      var respecConfig = {
+          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+          specStatus:           "ED",
+          
+          // the specification's short name, as in http://www.w3.org/TR/short-name/
+          shortName:            "indie-ui-events",
+
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          // subtitle   :  "an excellent document",
+
+          // if you wish the publication date to be other than today, set this
+          // publishDate:  "2009-08-06",
+
+          // if the specification's copyright date is a range of years, specify
+          // the start date here:
+          // copyrightStart: "2012",
+
+          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+          // and its maturity status
+          // previousPublishDate:  "1977-03-15",
+          // previousMaturity:  "WD",
+
+          // if there a publicly available Editor's Draft, this is the link
+          edDraftURI:           "http://dvcs.w3.org/hg/IndieUI/raw-file/tip/events/indie-ui-context.html",
+
+          // if this is a LCWD, uncomment and set the end of its review period
+          // lcEnd: "2009-08-05",
+
+          // if you want to have extra CSS, append them to this list
+          // it is recommended that the respec.css stylesheet be kept
+          extraCSS:             [
+            "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css",
+            "./csi/screen.css"
+          ],
+
+          // editors, add as many as you like
+          // only "name" is required, also can have url, company, companyURL in comma separated list
+          editors:  [
+              { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
+              { name: "Michael Cooper", company: "W3C", companyURL: "http://www.w3.org/" },
+          ],
+
+          // authors, add as many as you like. 
+          // This is optional, uncomment if you have authors as well as editors.
+          // only "name" is required. Same format as editors.
+
+          authors:  [
+            { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
+          ],
+          
+          // name of the WG
+          wg:           "Independent User Interface (Indie UI) and Web Events Working Groups",
+          
+          // URI of the public WG page
+          wgURI:        "http://www.w3.org/WAI/IndieUI/",
+          
+          // name (without the @w3c.org) of the public mailing to which comments are due
+          wgPublicList: "public-indie-ui-comments",
+          
+          // URI of the patent status for this WG, for Rec-track documents
+          // !!!! IMPORTANT !!!!
+          // This is important for Rec-track documents, do not copy a patent URI from a random
+          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+          // Team Contact.
+          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/54953/status",
+      };
+    </script>
+		
+	</head>
+	<body>
+		
+		<section id="abstract">
+			<p class="placeholder">Placeholder abstract.</p>
+		</section>
+
+		<section id="sotd">
+		</section>
+		
+		<!-- :::::::::::::::::::: INTRO :::::::::::::::::::: -->
+		<section id="intro">
+			<h2>Abstract</h2>
+			<p>This specification, in conjunction with the <a href="./Events.html">Events Module</a>, is intended address the problem of device-, <abbr title="operating system">OS</abbr>-, and localization-independent control of web content. </p>
+		</section>
+		<!-- :::::::::::::::::::: END INTRO :::::::::::::::::::: -->
+		
+
+		
+		<!-- :::::::::::::::::::: window.navigator.accessibility :::::::::::::::::::: -->
+		<section id="identification">
+			<h2>Assistive Technology Identification and Notification</h2>
+			<p>In certain cases, it is beneficial for web authors to be aware of the assistive technology in use. This section defines a collection of attributes that can be used to determine, from script, the kind of assistive technology in use, in order to be aware of considerations for a particular assistive technology, including the need to support the <a href="#RequestEvents">UI Change Request Events</a> or <a href="#AXevents">Accessibility Events</a> defined in previous sections. Web authors <strong class="rfc2119">should</strong> always limit client detection to detecting known versions. Web authors <strong class="rfc2119">should</strong> always assume future versions and unknown versions to be fully compliant.</p>
+			<p>The <code>accessibility</code> attribute of the Navigator interface <strong class="rfc2119">must</strong> return an instance of the Accessibility interface, which represents the identity and state of the assistive technology, and allows web pages to optionally notify assistive technology of certain interface events that cannot be indicated through declarative markup such as WAI-ARIA roles, states, and properties.</p>
+			<h3><strong>Interface <em>Accessibility</em></strong></h3>
+			<div class="idl">
+				<pre><code>interface Accessibility {
+  readonly attribute InterfaceObject accessibility; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
+  <span class="comment">// objects implementing the Accessibility interface also implement the ScreenReader and AccessibilityNotifications interfaces</span>
+};
+Accessibility implements AccessibilityNotifications;
+Accessibility implements ScreenReader;
+Accessibility implements Magnifier;
+Accessibility implements Speech;
+
+[Supplemental, NoInterfaceObject]
+interface AccessibilityNotifications {
+	
+	const unsigned short    screenChanged   = 1;
+	const unsigned short    elementChanged  = 2;
+	
+  void postNotification(required String notification, optional HTMLElement element);
+};</code></pre>
+			</div>
+			<h4>Methods for <strong>Interface <em>Accessibility</em></strong></h4>
+			<div class="method-list">
+				<dl>
+					<dt><code>window.navigator.accessibility.postNotification()</code></dt>
+					<dd>
+						<p>Returns void. Allows the web author to send a required or supplemental notification, usually to inform the assistive technology to update its cache of the accessibility tree. For example, web authors might call this method after an animation has completed, allowing a screen reader to update its cursor location, if the focused element was moved.</p>
+						<p class="note">Note: screenChanged should be fired for full screen DOM-based refreshes. elementChanged is sufficient for significant branch node changes.</p>
+					</dd>
+				</dl>
+			</div>
+			
+			<h3><strong>Interface <em>ScreenReader</em></strong></h3>
+			<p>The <code>screenreader</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the ScreenReader interface:</p>
+			<div class="idl">
+				<pre><code>interface ScreenReader {
+  readonly attribute InterfaceObject screenreader; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
+  <span class="comment">// objects implementing the ScreenReader interface also implement the interfaces given below</span>
+};
+ScreenReader implements ScreenReaderID;
+ScreenReader implements ScreenReaderStatus;
+
+[Supplemental, NoInterfaceObject]
+interface ScreenReaderID {
+  readonly attribute DOMString name;
+  readonly attribute DOMString version;
+};
+
+[Supplemental, NoInterfaceObject]
+interface ScreenReaderStatus {
+  readonly attribute boolean active;
+};</code></pre>
+			</div>
+			<h4>Properties for <strong>Interface <em>ScreenReader</em></strong></h4>
+			<div class="property-list">
+				<dl>
+					<dt><code>window.navigator.accessibility.screenreader.active</code></dt>
+					<dd>Returns a boolean indicating whether or not a screen reader is in use. The user agent <strong class="rfc2119">must</strong> return <code>true</code> if a screen reader is running, or <code>false</code> otherwise. User agents <strong class="rfc2119">may</strong> return <code>false</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					<dt class="ednote">window.navigator.accessibility.screenreader.activeElement</dt>
+					<dd class="ednote">@@</dd>
+					<dt><code>window.navigator.accessibility.screenreader.name</code></dt>
+					<dd>Returns the application name of the screen reader in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the name of the screen reader in detail, e.g. "<code>Apple VoiceOver</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					<dt><code>window.navigator.accessibility.screenreader.version</code></dt>
+					<dd>Returns the application version of the screen reader in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the version of the screen reader in detail, e.g. "<code>4.0 (220.2)</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+				</dl>
+			</div>
+			
+			<p class="note" title="Informative">Note: The authors recommend that user agents adopt a domain-level security policy for the ScreenReader interface that is similar to the security policy for location data or cookies. A user should be able to explicitly disallow sharing of this information altogether, or on a per-domain basis.</p>
+			
+			<h3><strong>Interface <em>Magnifier</em></strong></h3>
+			<p>The <code>magnifier</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the Magnifier interface:</p>
+			<div class="idl">
+				<pre><code>interface Magnifier {
+  readonly attribute InterfaceObject magnifier; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
+  <span class="comment">// objects implementing the Magnifier interface also implement the interfaces given below</span>
+};
+Magnifier implements MagnifierID;
+Magnifier implements MagnifierStatus;
+Magnifier implements MagnifierNotifications;
+
+[Supplemental, NoInterfaceObject]
+interface MagnifierID {
+  readonly attribute DOMString name;
+  readonly attribute DOMString version;
+};
+
+[Supplemental, NoInterfaceObject]
+interface MagnifierStatus {
+  readonly attribute boolean active;
+<!--  readonly attribute float   zoom;
+-->};
+
+[Supplemental, NoInterfaceObject]
+interface MagnifierNotifications {
+  <em class="ednote">// Editorial Note: I'm not partial to the method name focusPosition. Any other suggestions?</em>
+  void focusPosition(
+         in DOMElement element,
+         in optional array cursorRect,
+         in optional array selectionPolygon
+       );
+};</code></pre>
+			</div>
+			<h4>Properties for <strong>Interface <em>Magnifier</em></strong></h4>
+			<div class="property-list">
+				<dl>
+					<dt><code>window.navigator.accessibility.magnifier.active</code></dt>
+					<dd>Returns a boolean indicating whether or not a screen magnifier is in use. The user agent <strong class="rfc2119">must</strong> return <code>true</code> if a screen magnifier is enabled (even if the current zoom level is 1.0), or <code>false</code> if a magnifier is not enabled. User agents <strong class="rfc2119">may</strong> return <code>false</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					<dt><code>window.navigator.accessibility.magnifier.name</code></dt>
+					<dd>Returns the application name of the screen magnifier in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the name of the screen magnifier in detail, e.g. "<code>Apple Universal Access Zoom</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					<dt><code>window.navigator.accessibility.magnifier.version</code></dt>
+					<dd>Returns the application version of the screen magnifier in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the version of the screen magnifier in detail, e.g. "<code>4.0 (220.2)</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					<!--
+					<dt><code>window.navigator.accessibility.magnifier.zoom</code></dt>
+					<dd>Returns a floating point number indicating the current magnification level of the screen magnifier. The user agent <strong class="rfc2119">must</strong> return <code>1.0</code> or the current magnification level. User agents <strong class="rfc2119">may</strong> return <code>1.0</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
+					-->
+				</dl>
+			</div>
+			<h4>Methods for <strong>Interface <em>Magnifier</em></strong></h4>
+			<div class="method-list">
+				<dl>
+					<dt><code>window.navigator.accessibility.magnifier.focusPosition ( element, cursorRect, selectionPolygon )</code></dt>
+					<dd><p>Returns void. Allows the web author to send an explicit notification informing the screen magnifier to update its cache of the cursor location. Web authors <strong class="rfc2119">should</strong> call this method when updating the display or cursor position of custom views.</p>
+						<h5>Parameters for Magnifier.focusPosition</h5>
+						<div class="parameter-list">
+							<dl>
+								<dt>1. <code>DOMElement <strong>element</strong></code></dt>
+								<dd>Required reference to the element (e.g. <code>canvas</code>) that has focus.</dd>
+								<dt>2. <code>optional array <strong>cursorRect</strong></code></dt>
+								<dd>Optional array representing the rectangular cursor location relative to the <code>[0,0]</code> position of focused element. <code>[ x<sup>1</sup>, y<sup>1</sup>, x<sup>2</sup>, y<sup>2</sup> ]</code></dd>
+								<dt>3. <code>optional array <strong>selectionPolygon</strong></code></dt>
+								<dd>Optional array representing the selection polygon relative to the <code>[0,0]</code> position of focused element. <code>[ x<sup>1</sup>, y<sup>1</sup>, x<sup>2</sup>, y<sup>2</sup>, ... x<sup><i>n</i></sup>, y<sup><i>n</i></sup> ]</code></dd>
+							</dl>
+							<p class="ednote">Editorial Note: It may be better if the optional params are shape objects with a coords array and a type string like 'rect' or 'poly'. That would allow the author to decide if they wanted to provide the extra polygon coords, or just use a simple shape.</p>
+						</div>
+					</dd>
+				</dl>
+				<p class="note">Note: The <code>focusPosition()</code> method would be necessary for screen magnifiers to work with canvas-based web apps like <a href="https://bespin.mozillalabs.com/">Bespin</a> or the <a href="http://280north.com/">280 North</a> projects. This method is not necessary for text views managed by the user agent, including <code>contentEditable</code> views.</p>
+			</div>
+			
+			<!--
+			<h3><strong>Interface <em>Speech</em></strong></h3>
+			<p>The <code>speech</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the Speech interface:</p>
+			<div class="idl">
+				<pre><code>interface Speech {
+  <span class="comment">// TBD, placeholder for speech-controlled user agents or assistive technology</span>
+  <span class="comment">// may need speech.synthesis and speech.recognition; each could have name/version/engine, etc. </span>
+  <span class="comment">// potential method: speech.synthesis.speak() to trigger TTS from web app</span>
+  <span class="comment">// potential method: speech.recognition.updateDictionary() to capture correct pronunciation of uncommon or app-specific words</span>
+};</code></pre>
+			</div>
+			-->
+		</section>
+		<!-- :::::::::::::::::::: END window.navigator.accessibility :::::::::::::::::::: -->
+		
+		
+		<section class="placeholder">
+			<h2>Acknowledgements</h2>
+			<p>Placeholder for footer content (acknowledgements, terms, etc.)</p>
+		</section>
+		
+	</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/indie-ui-events.html	Thu Nov 08 13:57:08 2012 -0800
@@ -0,0 +1,407 @@
+<!DOCTYPE html>
+<html lang="en-us">
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+		<title>IndieUI: Events 1.0</title>
+		<link href="./csi/screen.css" rel="stylesheet" type="text/css">
+		
+		<!-- 
+      === NOTA BENE ===
+      For the three scripts below, if your spec resides on dev.w3 you can check them
+      out in the same tree and use relative links so that they'll work offline,
+     -->
+		<script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
+		<script class="remove">
+      var respecConfig = {
+          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+          specStatus:           "ED",
+          
+          // the specification's short name, as in http://www.w3.org/TR/short-name/
+          shortName:            "indie-ui-events",
+
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          // subtitle   :  "an excellent document",
+
+          // if you wish the publication date to be other than today, set this
+          // publishDate:  "2009-08-06",
+
+          // if the specification's copyright date is a range of years, specify
+          // the start date here:
+          // copyrightStart: "2012",
+
+          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+          // and its maturity status
+          // previousPublishDate:  "1977-03-15",
+          // previousMaturity:  "WD",
+
+          // if there a publicly available Editor's Draft, this is the link
+          edDraftURI:           "http://dvcs.w3.org/hg/IndieUI/raw-file/tip/events/indie-ui-events.html",
+
+          // if this is a LCWD, uncomment and set the end of its review period
+          // lcEnd: "2009-08-05",
+
+          // if you want to have extra CSS, append them to this list
+          // it is recommended that the respec.css stylesheet be kept
+          extraCSS:             [
+            "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css",
+            "./csi/screen.css"
+          ],
+
+          // editors, add as many as you like
+          // only "name" is required, also can have url, company, companyURL in comma separated list
+          editors:  [
+              { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
+              { name: "Michael Cooper", company: "W3C", companyURL: "http://www.w3.org/" },
+          ],
+
+          // authors, add as many as you like. 
+          // This is optional, uncomment if you have authors as well as editors.
+          // only "name" is required. Same format as editors.
+
+          authors:  [
+            { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
+          ],
+          
+          // name of the WG
+          wg:           "Independent User Interface (Indie UI) and Web Events Working Groups",
+          
+          // URI of the public WG page
+          wgURI:        "http://www.w3.org/WAI/IndieUI/",
+          
+          // name (without the @w3c.org) of the public mailing to which comments are due
+          wgPublicList: "public-indie-ui-comments",
+          
+          // URI of the patent status for this WG, for Rec-track documents
+          // !!!! IMPORTANT !!!!
+          // This is important for Rec-track documents, do not copy a patent URI from a random
+          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+          // Team Contact.
+          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/54953/status",
+      };
+    </script>
+		
+		
+	</head>
+	<body>
+
+		<section id="abstract">
+			<p class="placeholder">Placeholder abstract.</p>
+		</section>
+
+		<section id="sotd">
+		</section>
+		
+		<!-- :::::::::::::::::::: INTRO :::::::::::::::::::: -->
+		<section id="intro" class="informative">
+			<h2>Introduction</h2>
+			<p>This specification, in conjunction with the <a href="./user_context.html">User Context Module</a>, is intended address the problem of device-, <abbr title="operating system">OS</abbr>-, and localization-independent control of web content. </p>
+			<p class="placeholder">placeholder for remaining intro</p>
+		</section>
+		
+		<!-- :::::::::::::::::::: UI Request Event Interfaces :::::::::::::::::::: -->
+		<section id="RequestEvents">
+			<h2><abbr title="User Interface">UI</abbr> Change Request Events</h2>
+			<p>The core principle behind <abbr title="User Interface">UI</abbr> Change Request Events is that they operate on a completely backwards-compatible, opt-in basis. In other words, the web application author has to be aware of these events and register event listeners, or the user agent and assistive technology behave as they normally would.</p>
+			<p><strong>Change request events do not cause any direct manipulation or mutation of the DOM.</strong> Instead, the event object conveys the user's intent to the web application, and allows the web application to make the appropriate changes to the DOM, on behalf of the user agent or assistive technology. If a web application is authored to understand the change request event, it can cancel the event using <code>preventDefault()</code>, which informs the user agent or assistive technology that the event has been captured and understood. If a web application does not cancel any change request event, the user agent or assistive technology can then attempt fallback behavior or communicate to the user that the input has not been recognized.</p>
+			<p class="note" title="Informative">Note: The UIRequestEvent interface does not inherit from <a href="#AccessibilityEvent">AccessibilityEvent</a> (proposed in the following section), because we believe it will ultimately be useful outside the context of assistive technology. This may prove to be a lightweight, performant alternative to mutation events. For example, <code>DOMAttrChangeRequest</code> instead of <code>DOMAttrModified</code>.</p>
+			<p class="ednote">Event fires on document.activeElement (or AT equivalent) if applicable, or otherwise document.body.</p>
+			<p class="ednote">These events should be asynchronous, but when used in conjunction with keyboard events, should fire after keydown, but before both keyup and keypress.</p>
+
+			<!-- :::::::::::::::::::: UIRequestEvent :::::::::::::::::::: -->
+			<section id="UIRequestEvent">
+				<h3><strong>Interface <em>UIRequestEvent</em></strong></h3>
+
+				<div class="idlwrapper">
+					<pre class="idl">interface UIRequestEvent : UIEvent {
+  
+  <span class="comment">// UA or AT notifies web app of a change request</span>
+<!-- removed from IDL 
+  const unsigned short    UNDO     =  1;
+  const unsigned short    REDO     =  2;
+  const unsigned short    DISMISS  =  3;
+  const unsigned short    DELETE   =  4;
+  const unsigned short    EXPAND   =  5;
+  const unsigned short    COLLAPSE =  6;
+
+  <span class="comment">// expect more type constants will be added for other event types…</span>
+  <span class="comment">// ZOOM_IN / ZOOM_OUT ? perhaps that should just be slider widget, covered under ValueChangeRequest</span>
+  
+  readonly attribute unsigned short    eventType;
+-->
+  
+  void initUIRequestEvent(
+         in DOMString typeArg,
+         in boolean canBubbleArg,
+         in boolean cancelableArg,
+         in views::AbstractView viewArg,
+         in long detailArg,
+         <!--in unsigned short eventTypeArg-->
+       );
+};</pre>
+				</div>
+				<h4>The different types of UIRequestEvents that can occur are:</h4>
+				<dl>
+					<dt><code class="event">UndoRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends an 'undo' request to the web application.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+					<dt><code class="event">RedoRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends a 'redo' request to the web application.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+					<dt><code class="event">DismissRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends a 'dismiss' request to the web application.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+					<dt><code class="event">DeleteRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends a 'delete' request to the web application.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+					<dt><code class="event">ExpandRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology conveys intent to reveal information in a collapsed section (e.g. a disclosure widget) or branch node in a hierarchy (e.g., a tree view).</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+					<dt><code class="event">CollapseRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology conveys intent to hide or collapse information in an expanded section (e.g. a disclosure widget) or branch node in a hierarchy (e.g., a tree view).</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+				</dl> 
+				<div class="example" title="Informative">
+					<h4>Examples</h4>
+					<ol>
+						<li>Users, wanting to 'undo' a discrete action in a web application, can indicate their intent a number of ways, including pressing <kbd>Control+Z</kbd> on Windows or Linux, <kbd>Command+Z</kbd> on Mac OS X, and even by shaking some accelerometer- or gyroscope-enabled mobile devices. User agents understanding this intent should initiate an <code>UndoRequest</code> event. Web authors who have registered for this event should process the event to determine whether to cancel the event. If the 'undo' action is understood in the context of the web application, web authors should undo the user's change, and cancel the event using the event object's <code>preventDefault()</code> method.</li>
+						<li>Users, wanting to 'escape from' or 'dismiss' a web application state (for example, closing a modal dialog), can indicate their intent a number of ways, most commonly by pressing <kbd>Escape</kbd> on keyboard-controlled operating systems<!--, or by using a two-finger <a href="http://www.apple.com/voiceover/info/guide/_1133.html">scrub gesture</a> in VoiceOver on iOS or Mac OS X-->. User agents understanding this intent should initiate an <code>DismissRequest</code> event. Web authors who have registered for this event should process the event to determine whether to cancel the event. If the 'dismiss' action is understood in the context of the web application, web authors should perform the appropriate action (such as closing the dialog), and cancel the event using the event object's <code>preventDefault()</code> method.</li>
+					</ol>
+				</div>
+			</section>
+			<!-- :::::::::::::::::::: END UIRequestEvent :::::::::::::::::::: -->
+
+			<!-- :::::::::::::::::::: UIScrollRequestEvent :::::::::::::::::::: -->
+			<section id="UIScrollRequestEvent">
+				<h3><strong>Interface <em>UIScrollRequestEvent</em></strong></h3>
+				<div class="idlwrapper">
+					<pre class="idl">interface UIScrollRequestEvent : UIRequestEvent {
+  
+  <span class="comment">// for custom scroll views or widgets (e.g. carousels, lists, grids)</span>
+  const unsigned short    LEFT          =  1;
+  const unsigned short    UP            =  2;
+  const unsigned short    RIGHT         =  3;
+  const unsigned short    DOWN          =  4;
+  const unsigned short    LEFT_LIMIT    =  5;
+  const unsigned short    TOP_LIMIT     =  6;
+  const unsigned short    RIGHT_LIMIT   =  7;
+  const unsigned short    BOTTOM_LIMIT  =  8;
+  <span class="comment">// Note: these constants will likely change dramatically based on discussion from the IndieUI Face-to-Face. </span>
+  
+  readonly attribute unsigned short   scrollType;
+  
+  void initUIScrollRequestEvent(
+         in DOMString typeArg,
+         in boolean canBubbleArg,
+         in boolean cancelableArg,
+         in views::AbstractView viewArg,
+         in long detailArg,
+         in unsigned short eventTypeArg
+         in unsigned short scrollTypeArg
+       );
+};</pre>
+				</div>
+				<h4>The single type of UIScrollRequestEvent that can occur is:</h4>
+				<dl>
+					<dt><code class="event">ScrollRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends a scroll request to the web application. Scroll events need only be used on custom scroll views (lists and grids showing data subsets, carousels, etc.), as user agents and assistive technologies already manage scrolling of native scroll views.</p>
+						<p class="note" title="Informative">Note: The scroll type constants are more or less equivalent to expected behavior for <kbd>PageUp</kbd>/<kbd>PageDown</kbd> and <kbd>Home</kbd>/<kbd>End</kbd> keys on native scroll views, but also allow horizontal scrolling.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>scrollType</code></li>
+						</ul>
+					</dd>
+				</dl>
+			</section>
+			<!-- :::::::::::::::::::: END UIScrollRequestEvent :::::::::::::::::::: -->
+
+			<!-- :::::::::::::::::::: UIValueChangeRequestEvent :::::::::::::::::::: -->
+			<section id="UIValueChangeRequestEvent">
+				<h3><strong>Interface <em>UIValueChangeRequestEvent</em></strong></h3>
+				<div class="idlwrapper">
+					<pre class="idl">interface UIValueChangeRequestEvent : UIRequestEvent {
+  
+  <span class="comment">// value changes (e.g. ranges)</span>
+  const unsigned short    INCREMENT        =  1;
+  const unsigned short    INCREMENT_SMALL  =  2;
+  const unsigned short    INCREMENT_LARGE  =  3;
+  const unsigned short    INCREMENT_MAX    =  4;
+  const unsigned short    DECREMENT        =  5;
+  const unsigned short    DECREMENT_SMALL  =  6;
+  const unsigned short    DECREMENT_LARGE  =  7;
+  const unsigned short    DECREMENT_MIN    =  8;
+  <span class="comment">// Note: these constants will likely change dramatically based on discussion from the IndieUI Face-to-Face. </span>
+  
+  readonly attribute unsigned short   changeType;
+  
+  void initUIValueChangeRequestEvent(
+         in DOMString typeArg,
+         in boolean canBubbleArg,
+         in boolean cancelableArg,
+         in views::AbstractView viewArg,
+         in long detailArg,
+         in unsigned short eventTypeArg,
+         in unsigned short changeTypeArg
+       );
+};</pre>
+				</div>
+				<h4>The single type of UIValueChangeRequestEvent that can occur is:</h4>
+				<dl>
+					<dt><code class="event">ValueChangeRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends a value change request to the web application.</p>
+						<p>Web authors <strong class="rfc2119">should</strong> code applications to accept all values of the <code>changeType</code> argument. For example, if there is no special behavior for <code>INCREMENT_SMALL</code> or <code>INCREMENT_LARGE</code>, web applications would behave as if they had received a basic <code>INCREMENT</code> change type.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>eventType</code></li>
+						</ul>
+					</dd>
+				</dl>
+				
+				<div class="example" title="Informative">
+					<h4>Example</h4>
+					<p>Users, wanting to change the value of a custom range widget (slider, media progressbar, etc.) in a web application, can indicate their intent a number of ways, including pressing various keys (<kbd>Up</kbd>, <kbd>Down</kbd>, <kbd>Left</kbd>, <kbd>Right</kbd>, <kbd>PageUp</kbd>, <kbd>PageDown</kbd>, <kbd>Home</kbd>, <kbd>End</kbd>) on most keyboard-controlled interfaces, and through gestures on many touch-enabled interfaces. User agents understanding this intent should initiate a <code>ValueChangeRequest</code> event. Web authors who have registered for this event, should process the event to determine whether to cancel the event. If the value change action is understood in the context of the web application, web authors should change the value of the associated widget by an amount determined via the <code>changeType</code> argument, and cancel the event using the event object's <code>preventDefault()</code> method. If the event is not cancelled by the web author, user agents may pass the literal interaction event to the web application; in this case, in the form of a keypress or touch event.</p>
+				</div>
+					
+			</section>
+			<!-- :::::::::::::::::::: END UIValueChangeRequestEvent :::::::::::::::::::: -->
+
+			<!-- :::::::::::::::::::: DOMAttributeChangeRequestEvent :::::::::::::::::::: -->
+			<section id="DOMAttributeChangeRequestEvent">
+				<h3><strong>Interface <em>DOMAttributeChangeRequestEvent</em></strong></h3>
+				<div class="idlwrapper">
+					<pre class="idl">interface DOMAttributeChangeRequestEvent : UIRequestEvent {
+  
+  readonly attribute DOMString    attrName;
+  readonly attribute DOMString    newValue;
+  
+  void initDOMAttributeChangeRequestEvent(
+         in DOMString typeArg,
+         in boolean canBubbleArg,
+         in boolean cancelableArg,
+         in views::AbstractView viewArg,
+         in long detailArg,
+         in unsigned short eventTypeArg,
+         in DOMString attrNameArg,
+         in DOMString newValueArg
+       );
+};</pre>
+				</div>
+				<h4>The single type of DOMAttributeChangeRequestEvent that can occur is:</h4>
+				<dl>
+					<dt><code class="event">DOMAttrChangeRequest</code></dt>
+					<dd>
+						<p>Initiated when the user agent or assistive technology sends an attribute change request to the web application. In order for web applications to understand the intent of change request events from the user agent or assistive technology, these change requests should be limited to attributes for which a change in value indicates a discrete, defined action for known types of widgets and UI elements.</p>
+						<p class="note" title="Informative">Note: Currently, this limitation indicates that <code>DOMAttrChangeRequest</code> only applies to WAI-ARIA widgets, but it has the potential to be used with future iterations of HTML5 or <abbr title="Scalable Vector Graphics">SVG</abbr>.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: Yes</li>
+							<li>Context Info: <code>attrName</code>, <code>newValue</code></li>
+						</ul>
+					</dd>
+				</dl>
+				<div class="example" title="Informative">
+					<h4>Examples</h4>
+					<ol>
+						<li>If a user wanted to expand or collapse the current node of an ARIA tree, the assistive technology would initiate a <code>DOMAttrChangeRequest</code> event on the tree item element, with the <code>attrName</code> equal to <code>aria-expanded</code>, and the <code>newValue</code> equal to <code>true</code> or <code>false</code>.</li>
+						<li>If a user wanted to sort an ARIA grid on a particular column, the assistive technology would initiate a <code>DOMAttrChangeRequest</code> event on the column header element, with the <code>attrName</code> equal to <code>aria-sort</code>, and the <code>newValue</code> equal to <code>ascending</code> or <code>descending</code>.</li>
+					</ol>
+				</div>
+			</section>
+			<!-- :::::::::::::::::::: END DOMAttributeChangeRequestEvent :::::::::::::::::::: -->
+
+		</section>
+		<!-- :::::::::::::::::::: END UI Request Event Interfaces :::::::::::::::::::: -->
+
+		<!-- :::::::::::::::::::: Accessibility Event Interfaces :::::::::::::::::::: -->
+		<section id="AXevents">
+			<h2>Accessibility Events</h2>
+			<p>The following events are only initiated by assistive technologies, as opposed to mainstream user agents.</p>
+			
+			<!-- :::::::::::::::::::: AccessibilityEvent :::::::::::::::::::: -->
+			<section id="AccessibilityEvent">
+				<h3><strong>Interface <em>AccessibilityEvent</em></strong></h3>
+				<div class="idlwrapper">
+					<pre class="idl">interface AccessibilityEvent : UIEvent {
+  void initAccessibilityEvent(
+         in DOMString typeArg,
+         in boolean canBubbleArg,
+         in boolean cancelableArg,
+         in views::AbstractView viewArg,
+         in long detailArg
+       );
+};</pre>
+				</div>
+				<h4>The different types of AccessibilityEvents that can occur are:</h4>
+				<dl>
+					<dt><code class="event">ATFocusIn</code></dt>
+					<dd>
+						<p>Initiated when the assistive technology cursor or point of regard moves to a particular DOM node.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: No</li>
+							<li>Context Info: None</li>
+						</ul>
+					</dd>
+					<dt><code class="event">ATFocusOut</code></dt>
+					<dd>
+						<p>Initiated when the assistive technology cursor or point of regard leaves a particular DOM node.</p>
+						<ul>
+							<li>Bubbles: Yes</li>
+							<li>Cancelable: No</li>
+							<li>Context Info: None</li>
+						</ul>
+					</dd>
+				</dl>
+			</section>
+			<!-- :::::::::::::::::::: END AccessibilityEvent :::::::::::::::::::: -->
+			
+		</section>
+		<!-- :::::::::::::::::::: END Accessibility Event Interfaces :::::::::::::::::::: -->
+
+		<section class="placeholder">
+			<h2>Acknowledgements</h2>
+			<p>Placeholder for footer content (acknowledgements, terms, etc.)</p>
+		</section>
+		
+	</body>
+</html>
--- a/src/user_context.html	Thu Nov 08 13:54:00 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-us">
-	<head>
-		<meta http-equiv="Content-type" content="text/html; charset=utf-8">
-		<title>IndieUI 1.0: User Context</title>
-		<link href="./csi/screen.css" rel="stylesheet" type="text/css">
-		
-		<!-- 
-      === NOTA BENE ===
-      For the three scripts below, if your spec resides on dev.w3 you can check them
-      out in the same tree and use relative links so that they'll work offline,
-     -->
-		<script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
-		<script class="remove">
-      var respecConfig = {
-          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
-          specStatus:           "ED",
-          
-          // the specification's short name, as in http://www.w3.org/TR/short-name/
-          shortName:            "indie-ui-events",
-
-          // if your specification has a subtitle that goes below the main
-          // formal title, define it here
-          // subtitle   :  "an excellent document",
-
-          // if you wish the publication date to be other than today, set this
-          // publishDate:  "2009-08-06",
-
-          // if the specification's copyright date is a range of years, specify
-          // the start date here:
-          // copyrightStart: "2012",
-
-          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
-          // and its maturity status
-          // previousPublishDate:  "1977-03-15",
-          // previousMaturity:  "WD",
-
-          // if there a publicly available Editor's Draft, this is the link
-          edDraftURI:           "http://dvcs.w3.org/hg/IndieUI/raw-file/tip/events/indie-ui-context.html",
-
-          // if this is a LCWD, uncomment and set the end of its review period
-          // lcEnd: "2009-08-05",
-
-          // if you want to have extra CSS, append them to this list
-          // it is recommended that the respec.css stylesheet be kept
-          extraCSS:             [
-            "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css",
-            "./csi/screen.css"
-          ],
-
-          // editors, add as many as you like
-          // only "name" is required, also can have url, company, companyURL in comma separated list
-          editors:  [
-              { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
-              { name: "Michael Cooper", company: "W3C", companyURL: "http://www.w3.org/" },
-          ],
-
-          // authors, add as many as you like. 
-          // This is optional, uncomment if you have authors as well as editors.
-          // only "name" is required. Same format as editors.
-
-          authors:  [
-            { name: "James Craig", company: "Apple Inc.", companyURL: "http://www.apple.com/" },
-          ],
-          
-          // name of the WG
-          wg:           "Independent User Interface (Indie UI) and Web Events Working Groups",
-          
-          // URI of the public WG page
-          wgURI:        "http://www.w3.org/WAI/IndieUI/",
-          
-          // name (without the @w3c.org) of the public mailing to which comments are due
-          wgPublicList: "public-indie-ui-comments",
-          
-          // URI of the patent status for this WG, for Rec-track documents
-          // !!!! IMPORTANT !!!!
-          // This is important for Rec-track documents, do not copy a patent URI from a random
-          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
-          // Team Contact.
-          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/54953/status",
-      };
-    </script>
-		
-	</head>
-	<body>
-		
-		<section id="abstract">
-			<p class="placeholder">Placeholder abstract.</p>
-		</section>
-
-		<section id="sotd">
-		</section>
-		
-		<!-- :::::::::::::::::::: INTRO :::::::::::::::::::: -->
-		<section id="intro">
-			<h2>Abstract</h2>
-			<p>This specification, in conjunction with the <a href="./Events.html">Events Module</a>, is intended address the problem of device-, <abbr title="operating system">OS</abbr>-, and localization-independent control of web content. </p>
-		</section>
-		<!-- :::::::::::::::::::: END INTRO :::::::::::::::::::: -->
-		
-
-		
-		<!-- :::::::::::::::::::: window.navigator.accessibility :::::::::::::::::::: -->
-		<section id="identification">
-			<h2>Assistive Technology Identification and Notification</h2>
-			<p>In certain cases, it is beneficial for web authors to be aware of the assistive technology in use. This section defines a collection of attributes that can be used to determine, from script, the kind of assistive technology in use, in order to be aware of considerations for a particular assistive technology, including the need to support the <a href="#RequestEvents">UI Change Request Events</a> or <a href="#AXevents">Accessibility Events</a> defined in previous sections. Web authors <strong class="rfc2119">should</strong> always limit client detection to detecting known versions. Web authors <strong class="rfc2119">should</strong> always assume future versions and unknown versions to be fully compliant.</p>
-			<p>The <code>accessibility</code> attribute of the Navigator interface <strong class="rfc2119">must</strong> return an instance of the Accessibility interface, which represents the identity and state of the assistive technology, and allows web pages to optionally notify assistive technology of certain interface events that cannot be indicated through declarative markup such as WAI-ARIA roles, states, and properties.</p>
-			<h3><strong>Interface <em>Accessibility</em></strong></h3>
-			<div class="idl">
-				<pre><code>interface Accessibility {
-  readonly attribute InterfaceObject accessibility; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
-  <span class="comment">// objects implementing the Accessibility interface also implement the ScreenReader and AccessibilityNotifications interfaces</span>
-};
-Accessibility implements AccessibilityNotifications;
-Accessibility implements ScreenReader;
-Accessibility implements Magnifier;
-Accessibility implements Speech;
-
-[Supplemental, NoInterfaceObject]
-interface AccessibilityNotifications {
-	
-	const unsigned short    screenChanged   = 1;
-	const unsigned short    elementChanged  = 2;
-	
-  void postNotification(required String notification, optional HTMLElement element);
-};</code></pre>
-			</div>
-			<h4>Methods for <strong>Interface <em>Accessibility</em></strong></h4>
-			<div class="method-list">
-				<dl>
-					<dt><code>window.navigator.accessibility.postNotification()</code></dt>
-					<dd>
-						<p>Returns void. Allows the web author to send a required or supplemental notification, usually to inform the assistive technology to update its cache of the accessibility tree. For example, web authors might call this method after an animation has completed, allowing a screen reader to update its cursor location, if the focused element was moved.</p>
-						<p class="note">Note: screenChanged should be fired for full screen DOM-based refreshes. elementChanged is sufficient for significant branch node changes.</p>
-					</dd>
-				</dl>
-			</div>
-			
-			<h3><strong>Interface <em>ScreenReader</em></strong></h3>
-			<p>The <code>screenreader</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the ScreenReader interface:</p>
-			<div class="idl">
-				<pre><code>interface ScreenReader {
-  readonly attribute InterfaceObject screenreader; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
-  <span class="comment">// objects implementing the ScreenReader interface also implement the interfaces given below</span>
-};
-ScreenReader implements ScreenReaderID;
-ScreenReader implements ScreenReaderStatus;
-
-[Supplemental, NoInterfaceObject]
-interface ScreenReaderID {
-  readonly attribute DOMString name;
-  readonly attribute DOMString version;
-};
-
-[Supplemental, NoInterfaceObject]
-interface ScreenReaderStatus {
-  readonly attribute boolean active;
-};</code></pre>
-			</div>
-			<h4>Properties for <strong>Interface <em>ScreenReader</em></strong></h4>
-			<div class="property-list">
-				<dl>
-					<dt><code>window.navigator.accessibility.screenreader.active</code></dt>
-					<dd>Returns a boolean indicating whether or not a screen reader is in use. The user agent <strong class="rfc2119">must</strong> return <code>true</code> if a screen reader is running, or <code>false</code> otherwise. User agents <strong class="rfc2119">may</strong> return <code>false</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					<dt class="ednote">window.navigator.accessibility.screenreader.activeElement</dt>
-					<dd class="ednote">@@</dd>
-					<dt><code>window.navigator.accessibility.screenreader.name</code></dt>
-					<dd>Returns the application name of the screen reader in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the name of the screen reader in detail, e.g. "<code>Apple VoiceOver</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					<dt><code>window.navigator.accessibility.screenreader.version</code></dt>
-					<dd>Returns the application version of the screen reader in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the version of the screen reader in detail, e.g. "<code>4.0 (220.2)</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-				</dl>
-			</div>
-			
-			<p class="note" title="Informative">Note: The authors recommend that user agents adopt a domain-level security policy for the ScreenReader interface that is similar to the security policy for location data or cookies. A user should be able to explicitly disallow sharing of this information altogether, or on a per-domain basis.</p>
-			
-			<h3><strong>Interface <em>Magnifier</em></strong></h3>
-			<p>The <code>magnifier</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the Magnifier interface:</p>
-			<div class="idl">
-				<pre><code>interface Magnifier {
-  readonly attribute InterfaceObject magnifier; <em class="ednote">// Editorial Note: Is it necessary to define this attribute in the IDL?</em>
-  <span class="comment">// objects implementing the Magnifier interface also implement the interfaces given below</span>
-};
-Magnifier implements MagnifierID;
-Magnifier implements MagnifierStatus;
-Magnifier implements MagnifierNotifications;
-
-[Supplemental, NoInterfaceObject]
-interface MagnifierID {
-  readonly attribute DOMString name;
-  readonly attribute DOMString version;
-};
-
-[Supplemental, NoInterfaceObject]
-interface MagnifierStatus {
-  readonly attribute boolean active;
-<!--  readonly attribute float   zoom;
--->};
-
-[Supplemental, NoInterfaceObject]
-interface MagnifierNotifications {
-  <em class="ednote">// Editorial Note: I'm not partial to the method name focusPosition. Any other suggestions?</em>
-  void focusPosition(
-         in DOMElement element,
-         in optional array cursorRect,
-         in optional array selectionPolygon
-       );
-};</code></pre>
-			</div>
-			<h4>Properties for <strong>Interface <em>Magnifier</em></strong></h4>
-			<div class="property-list">
-				<dl>
-					<dt><code>window.navigator.accessibility.magnifier.active</code></dt>
-					<dd>Returns a boolean indicating whether or not a screen magnifier is in use. The user agent <strong class="rfc2119">must</strong> return <code>true</code> if a screen magnifier is enabled (even if the current zoom level is 1.0), or <code>false</code> if a magnifier is not enabled. User agents <strong class="rfc2119">may</strong> return <code>false</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					<dt><code>window.navigator.accessibility.magnifier.name</code></dt>
-					<dd>Returns the application name of the screen magnifier in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the name of the screen magnifier in detail, e.g. "<code>Apple Universal Access Zoom</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					<dt><code>window.navigator.accessibility.magnifier.version</code></dt>
-					<dd>Returns the application version of the screen magnifier in use. The user agent <strong class="rfc2119">must</strong> return either an empty string or a string representing the version of the screen magnifier in detail, e.g. "<code>4.0 (220.2)</code>". User agents <strong class="rfc2119">may</strong> return an empty string if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					<!--
-					<dt><code>window.navigator.accessibility.magnifier.zoom</code></dt>
-					<dd>Returns a floating point number indicating the current magnification level of the screen magnifier. The user agent <strong class="rfc2119">must</strong> return <code>1.0</code> or the current magnification level. User agents <strong class="rfc2119">may</strong> return <code>1.0</code> if the user has chosen to disallow sharing this information with the requesting domain.</dd>
-					-->
-				</dl>
-			</div>
-			<h4>Methods for <strong>Interface <em>Magnifier</em></strong></h4>
-			<div class="method-list">
-				<dl>
-					<dt><code>window.navigator.accessibility.magnifier.focusPosition ( element, cursorRect, selectionPolygon )</code></dt>
-					<dd><p>Returns void. Allows the web author to send an explicit notification informing the screen magnifier to update its cache of the cursor location. Web authors <strong class="rfc2119">should</strong> call this method when updating the display or cursor position of custom views.</p>
-						<h5>Parameters for Magnifier.focusPosition</h5>
-						<div class="parameter-list">
-							<dl>
-								<dt>1. <code>DOMElement <strong>element</strong></code></dt>
-								<dd>Required reference to the element (e.g. <code>canvas</code>) that has focus.</dd>
-								<dt>2. <code>optional array <strong>cursorRect</strong></code></dt>
-								<dd>Optional array representing the rectangular cursor location relative to the <code>[0,0]</code> position of focused element. <code>[ x<sup>1</sup>, y<sup>1</sup>, x<sup>2</sup>, y<sup>2</sup> ]</code></dd>
-								<dt>3. <code>optional array <strong>selectionPolygon</strong></code></dt>
-								<dd>Optional array representing the selection polygon relative to the <code>[0,0]</code> position of focused element. <code>[ x<sup>1</sup>, y<sup>1</sup>, x<sup>2</sup>, y<sup>2</sup>, ... x<sup><i>n</i></sup>, y<sup><i>n</i></sup> ]</code></dd>
-							</dl>
-							<p class="ednote">Editorial Note: It may be better if the optional params are shape objects with a coords array and a type string like 'rect' or 'poly'. That would allow the author to decide if they wanted to provide the extra polygon coords, or just use a simple shape.</p>
-						</div>
-					</dd>
-				</dl>
-				<p class="note">Note: The <code>focusPosition()</code> method would be necessary for screen magnifiers to work with canvas-based web apps like <a href="https://bespin.mozillalabs.com/">Bespin</a> or the <a href="http://280north.com/">280 North</a> projects. This method is not necessary for text views managed by the user agent, including <code>contentEditable</code> views.</p>
-			</div>
-			
-			<!--
-			<h3><strong>Interface <em>Speech</em></strong></h3>
-			<p>The <code>speech</code> attribute of the Accessibility interface <strong class="rfc2119">must</strong> return an instance of the Speech interface:</p>
-			<div class="idl">
-				<pre><code>interface Speech {
-  <span class="comment">// TBD, placeholder for speech-controlled user agents or assistive technology</span>
-  <span class="comment">// may need speech.synthesis and speech.recognition; each could have name/version/engine, etc. </span>
-  <span class="comment">// potential method: speech.synthesis.speak() to trigger TTS from web app</span>
-  <span class="comment">// potential method: speech.recognition.updateDictionary() to capture correct pronunciation of uncommon or app-specific words</span>
-};</code></pre>
-			</div>
-			-->
-		</section>
-		<!-- :::::::::::::::::::: END window.navigator.accessibility :::::::::::::::::::: -->
-		
-		
-		<section class="placeholder">
-			<h2>Acknowledgements</h2>
-			<p>Placeholder for footer content (acknowledgements, terms, etc.)</p>
-		</section>
-		
-	</body>
-</html>