- From: Sam Ruby via cvs-syncmail <cvsmail@w3.org>
- Date: Sun, 21 Oct 2012 22:44:56 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec In directory hutz:/tmp/cvs-serv26400 Modified Files: content-models.html dnd.html dom.html editing.html history.html index.html introduction.html media-elements.html offline.html references.html rendering.html single-page.html system-state-and-capabilities.html the-area-element.html the-canvas-element.html the-ruby-element.html the-section-element.html tokenization.html urls.html webappapis.html Log Message: commit 6fd0fdeb3105f602e5f78403327dbf0381a4fc41 Author: ianh <ianh@340c8d12-0b0e-0410-8428-c7bf67bfef74> Date: Thu Oct 11 23:03:52 2012 +0000 [e] (0) add a non-normative line Affected topics: Offline Web Applications git-svn-id: http://svn.whatwg.org/webapps@7455 340c8d12-0b0e-0410-8428-c7bf67bfef74 (cherry picked from commit e6c75884ae551647312cc37666419a5dbfa990e5) Index: media-elements.html =================================================================== RCS file: /sources/public/html5/spec/media-elements.html,v retrieving revision 1.213 retrieving revision 1.214 diff -u -d -r1.213 -r1.214 --- media-elements.html 15 Oct 2012 16:15:46 -0000 1.213 +++ media-elements.html 21 Oct 2012 22:44:53 -0000 1.214 @@ -1777,7 +1777,7 @@ <th> Brief description <tbody><tr><td><dfn id="attr-media-preload-none" title="attr-media-preload-none"><code>none</code></dfn> <td><dfn id="attr-media-preload-none-state" title="attr-media-preload-none-state">None</dfn> - <td>Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimise unnecessary traffic. + <td>Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimize unnecessary traffic. This state does not provide a hint regarding how aggressively to actually download the media resource if buffering starts anyway (e.g. once the user hits "play"). <tr><td><dfn id="attr-media-preload-metadata" title="attr-media-preload-metadata"><code>metadata</code></dfn> <td><dfn id="attr-media-preload-metadata-state" title="attr-media-preload-metadata-state">Metadata</dfn> @@ -6787,110 +6787,87 @@ <!--TOPIC:Video and Audio--> <h5 id="user-interface"><span class="secno">4.8.10.13 </span>User interface</h5> - <p>The <dfn id="attr-media-controls" title="attr-media-controls"><code>controls</code></dfn> - attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean attribute</a>. If present, it - indicates that the author has not provided a scripted controller and - would like the user agent to provide its own set of controls.</p> + <p>The <dfn id="attr-media-controls" title="attr-media-controls"><code>controls</code></dfn> attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean + attribute</a>. If present, it indicates that the author has not provided a scripted controller + and would like the user agent to provide its own set of controls.</p> <div class="impl"> - <p>If the attribute is present, or if <a href="webappapis.html#concept-n-noscript" title="concept-n-noscript">scripting is disabled</a> for the - <a href="#media-element">media element</a>, then the user agent should <dfn id="expose-a-user-interface-to-the-user">expose a - user interface to the user</dfn>. This user interface should include - features to begin playback, pause playback, seek to an arbitrary - position in the content (if the content supports arbitrary seeking), - change the volume, change the display of closed captions or embedded - sign-language tracks, select different audio tracks or turn on audio - descriptions, and show the media content in manners more suitable to - the user (e.g. full-screen video or in an independent resizable - window). Other controls may also be made available.</p> + <p>If the attribute is present, or if <a href="webappapis.html#concept-n-noscript" title="concept-n-noscript">scripting is + disabled</a> for the <a href="#media-element">media element</a>, then the user agent should <dfn id="expose-a-user-interface-to-the-user">expose a user + interface to the user</dfn>. This user interface should include features to begin playback, pause + playback, seek to an arbitrary position in the content (if the content supports arbitrary + seeking), change the volume, change the display of closed captions or embedded sign-language + tracks, select different audio tracks or turn on audio descriptions, and show the media content in + manners more suitable to the user (e.g. full-screen video or in an independent resizable window). + Other controls may also be made available.</p> - <p>If the <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, then the user agent should expose audio tracks - from all the <a href="#slaved-media-elements">slaved media elements</a> (although avoiding - duplicates if the same <a href="#media-resource">media resource</a> is being used - several times). If a <a href="#media-resource">media resource</a>'s audio track - exposed in this way has no known name, and it is the only audio - track for a particular <a href="#media-element">media element</a>, the user agent - should use the element's <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> - attribute, if any, as the name (or as part of the name) of that - track.</p> + <p>If the <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, then the user + agent should expose audio tracks from all the <a href="#slaved-media-elements">slaved media elements</a> (although + avoiding duplicates if the same <a href="#media-resource">media resource</a> is being used several times). If a + <a href="#media-resource">media resource</a>'s audio track exposed in this way has no known name, and it is the + only audio track for a particular <a href="#media-element">media element</a>, the user agent should use the + element's <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute, if any, as the name (or as part of the + name) of that track.</p> - <p>Even when the attribute is absent, however, user agents may - provide controls to affect playback of the media resource - (e.g. play, pause, seeking, and volume controls), but such features - should not interfere with the page's normal rendering. For example, - such features could be exposed in the <a href="#media-element">media element</a>'s - context menu.</p> + <p>Even when the attribute is absent, however, user agents may provide controls to affect playback + of the media resource (e.g. play, pause, seeking, and volume controls), but such features should + not interfere with the page's normal rendering. For example, such features could be exposed in the + <a href="#media-element">media element</a>'s context menu. The user agent may implement this simply by <a href="#expose-a-user-interface-to-the-user" title="expose a user interface to the user">exposing a user interface to the user</a> as + described above (as if the <code title="attr-media-controls"><a href="#attr-media-controls">controls</a></code> attribute was + present).</p> - <p>Where possible (specifically, for starting, stopping, pausing, - and unpausing playback, for seeking, for changing the rate of - playback, for fast-forwarding or rewinding, - for listing, enabling, and disabling text tracks, - and for muting or changing the volume of the audio), user interface - features exposed by the user agent must be implemented in terms of - the DOM API described above, so that, e.g., all the same events - fire.</p> + <p>Where possible (specifically, for starting, stopping, pausing, and unpausing playback, for + seeking, for changing the rate of playback, for fast-forwarding or rewinding, for listing, + enabling, and disabling text tracks, and for muting or changing the volume of the audio), user + interface features exposed by the user agent must be implemented in terms of the DOM API described + above, so that, e.g., all the same events fire.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the user agent's user interface for pausing and - unpausing playback, for seeking, for changing the rate of playback, - for fast-forwarding or rewinding, and for muting or changing the - volume of audio of the entire group must be implemented in terms of - the <code><a href="#mediacontroller">MediaController</a></code> API exposed on that <a href="#current-media-controller">current - media controller</a>. When a <a href="#media-element">media element</a> has a - <a href="#current-media-controller">current media controller</a>, and all the <a href="#slaved-media-elements">slaved - media elements</a> of that <code><a href="#mediacontroller">MediaController</a></code> are - paused, the user agent should also unpause all the <a href="#slaved-media-elements">slaved - media elements</a> when the user invokes a user agent interface - control for beginning playback.</p> + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, the user agent's + user interface for pausing and unpausing playback, for seeking, for changing the rate of playback, + for fast-forwarding or rewinding, and for muting or changing the volume of audio of the entire + group must be implemented in terms of the <code><a href="#mediacontroller">MediaController</a></code> API exposed on that + <a href="#current-media-controller">current media controller</a>. When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media + controller</a>, and all the <a href="#slaved-media-elements">slaved media elements</a> of that + <code><a href="#mediacontroller">MediaController</a></code> are paused, the user agent should also unpause all the <a href="#slaved-media-elements">slaved + media elements</a> when the user invokes a user agent interface control for beginning + playback.</p> - <p>The "play" function in the user agent's interface must set the - <code title="">playbackRate</code> attribute to the value of the - <code title="">defaultPlaybackRate</code> attribute before invoking - the <code title="">play()</code> method. - When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the attributes and method with those names on - that <code><a href="#mediacontroller">MediaController</a></code> object must be used. Otherwise, - the attributes and method with those names on the <a href="#media-element">media - element</a> itself must be used. - </p> + <p>The "play" function in the user agent's interface must set the <code title="">playbackRate</code> attribute to the value of the <code title="">defaultPlaybackRate</code> attribute before invoking the <code title="">play()</code> + method. When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, the + attributes and method with those names on that <code><a href="#mediacontroller">MediaController</a></code> object must be used. + Otherwise, the attributes and method with those names on the <a href="#media-element">media element</a> itself + must be used. </p> - <p>Features such as fast-forward or rewind must be implemented by - only changing the <code title="">playbackRate</code> attribute (and - not the <code title="">defaultPlaybackRate</code> attribute). - Again, when a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the attributes with those names on that - <code><a href="#mediacontroller">MediaController</a></code> object must be used; otherwise, the - attributes with those names on the <a href="#media-element">media element</a> itself - must be used. - </p> + <p>Features such as fast-forward or rewind must be implemented by only changing the <code title="">playbackRate</code> attribute (and not the <code title="">defaultPlaybackRate</code> + attribute). Again, when a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, + the attributes with those names on that <code><a href="#mediacontroller">MediaController</a></code> object must be used; + otherwise, the attributes with those names on the <a href="#media-element">media element</a> itself must be used.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, seeking must be implemented in terms of the <code title="dom-MediaController-currentTime"><a href="#dom-mediacontroller-currenttime">currentTime</a></code> attribute - on that <code><a href="#mediacontroller">MediaController</a></code> object. Otherwise, the user - agent must directly <a href="#dom-media-seek" title="dom-media-seek">seek</a> to the - requested position in the <a href="#media-element">media element</a>'s <a href="#media-timeline">media - timeline</a>.</p> + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, seeking must be + implemented in terms of the <code title="dom-MediaController-currentTime"><a href="#dom-mediacontroller-currenttime">currentTime</a></code> + attribute on that <code><a href="#mediacontroller">MediaController</a></code> object. Otherwise, the user agent must directly + <a href="#dom-media-seek" title="dom-media-seek">seek</a> to the requested position in the <a href="#media-element">media + element</a>'s <a href="#media-timeline">media timeline</a>. For media resources where seeking to an arbitrary + position would be slow, user agents are encouraged to use the <i>approximate-for-speed</i> flag + when seeking in response to the user manipulating an approximate position interface such as a seek + bar.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, user agents may additionally provide the user - with controls that directly manipulate an individual <a href="#media-element">media - element</a> without affecting the <code><a href="#mediacontroller">MediaController</a></code>, - but such features are considered relatively advanced and unlikely to - be useful to most users. + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, user agents may + additionally provide the user with controls that directly manipulate an individual <a href="#media-element">media + element</a> without affecting the <code><a href="#mediacontroller">MediaController</a></code>, but such features are + considered relatively advanced and unlikely to be useful to most users.</p> - <p>For the purposes of listing chapters in the <a href="#media-resource">media - resource</a>, only <a href="#text-track" title="text track">text tracks</a> in - the <a href="#media-element">media element</a>'s <a href="#list-of-text-tracks">list of text tracks</a> - that are <a href="#text-track-showing" title="text track showing">showing</a> and whose - <a href="#text-track-kind">text track kind</a> is <code title="dom-TextTrack-kind-chapters"><a href="#dom-texttrack-kind-chapters">chapters</a></code> should be used. - Such tracks must be interpreted according to the <a href="#rules-for-constructing-the-chapter-tree-from-a-text-track">rules for - constructing the chapter tree from a text track</a>.</p> + <p>For the purposes of listing chapters in the <a href="#media-resource">media resource</a>, only <a href="#text-track" title="text + track">text tracks</a> in the <a href="#media-element">media element</a>'s <a href="#list-of-text-tracks">list of text tracks</a> + that are <a href="#text-track-showing" title="text track showing">showing</a> and whose <a href="#text-track-kind">text track kind</a> is + <code title="dom-TextTrack-kind-chapters"><a href="#dom-texttrack-kind-chapters">chapters</a></code> should be used. Such tracks must be + interpreted according to the <a href="#rules-for-constructing-the-chapter-tree-from-a-text-track">rules for constructing the chapter tree from a text + track</a>. When seeking in response to a user maniplating a chapter selection interface, user + agents should not use the <i>approximate-for-speed</i> flag.</p> - <p>The <dfn id="dom-media-controls" title="dom-media-controls"><code>controls</code></dfn> - IDL attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the - same name.</p> + <p>The <dfn id="dom-media-controls" title="dom-media-controls"><code>controls</code></dfn> IDL attribute must + <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the same name.</p> <hr></div> Index: dom.html =================================================================== RCS file: /sources/public/html5/spec/dom.html,v retrieving revision 1.1287 retrieving revision 1.1288 diff -u -d -r1.1287 -r1.1288 --- dom.html 15 Oct 2012 16:15:44 -0000 1.1287 +++ dom.html 21 Oct 2012 22:44:52 -0000 1.1288 @@ -400,7 +400,7 @@ attempting to impersonate another.</p> <p>When a <code><a href="#document">Document</a></code> is created by a <a href="webappapis.html#concept-script" title="concept-script">script</a> using the <code title="dom-DOMImplementation-createDocument"><a href="infrastructure.html#dom-domimplementation-createdocument">createDocument()</a></code> - or <code title="dom-DOMHTMLImplementation-createHTMLDocument">createHTMLDocument()</code> + or <code title="dom-DOMImplementation-createHTMLDocument"><a href="infrastructure.html#dom-domimplementation-createhtmldocument">createHTMLDocument()</a></code> APIs, <a href="#the-document's-address">the document's address</a> is the same as <a href="#the-document's-address">the document's address</a> of the <a href="webappapis.html#script's-document">script's document</a>, and the <code><a href="#document">Document</a></code> is both <a href="the-end.html#ready-for-post-load-tasks">ready for post-load Index: index.html =================================================================== RCS file: /sources/public/html5/spec/index.html,v retrieving revision 1.1333 retrieving revision 1.1334 diff -u -d -r1.1333 -r1.1334 --- index.html 15 Oct 2012 22:16:01 -0000 1.1333 +++ index.html 21 Oct 2012 22:44:52 -0000 1.1334 @@ -1030,7 +1030,8 @@ <li><a href="history.html#aborting-a-document-load"><span class="secno">5.6.12 </span>Aborting a document load</a></ol></li> <li><a href="offline.html#offline"><span class="secno">5.7 </span>Offline Web applications</a> <ol class="toc"><li><a href="offline.html#introduction-4"><span class="secno">5.7.1 </span>Introduction</a> - <ol class="toc"><li><a href="offline.html#appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</a></ol></li> + <ol class="toc"><li><a href="offline.html#supporting-offline-caching-for-legacy-applications"><span class="secno">5.7.1.1 </span>Supporting offline caching for legacy applications</a></li> + <li><a href="offline.html#appcacheevents"><span class="secno">5.7.1.2 </span>Event summary</a></ol></li> <li><a href="offline.html#appcache"><span class="secno">5.7.2 </span>Application caches</a></li> <li><a href="offline.html#manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</a> <ol class="toc"><li><a href="offline.html#some-sample-manifests"><span class="secno">5.7.3.1 </span>Some sample manifests</a></li> Index: history.html =================================================================== RCS file: /sources/public/html5/spec/history.html,v retrieving revision 1.1288 retrieving revision 1.1289 diff -u -d -r1.1288 -r1.1289 --- history.html 15 Oct 2012 16:15:45 -0000 1.1288 +++ history.html 21 Oct 2012 22:44:52 -0000 1.1289 @@ -2568,9 +2568,8 @@ <li><p>Increase the <code><a href="dom.html#document">Document</a></code>'s <a href="dynamic-markup-insertion.html#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</li> - <li><p>Let <var title="">event</var> be a new - <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> event object with the name <code title="event-beforeunload">beforeunload</code>, which does not - bubble but is cancelable.</li> + <li><p>Let <var title="">event</var> be a new <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> + <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> event object with the name <code title="event-beforeunload">beforeunload</code>, which does not bubble but is cancelable.</li> <li><p><i>Dispatch</i>: Dispatch <var title="">event</var> at the <code><a href="dom.html#document">Document</a></code>'s <code><a href="browsers.html#window">Window</a></code> object.</li> Index: the-ruby-element.html =================================================================== RCS file: /sources/public/html5/spec/the-ruby-element.html,v retrieving revision 1.205 retrieving revision 1.206 diff -u -d -r1.205 -r1.206 --- the-ruby-element.html 15 Oct 2012 16:15:53 -0000 1.205 +++ the-ruby-element.html 21 Oct 2012 22:44:54 -0000 1.206 @@ -399,7 +399,7 @@ <ol class="brief"><li>One or the other of the following: <ul class="brief"><li><a href="content-models.html#phrasing-content-1">Phrasing content</a>, but with no <code><a href="#the-ruby-element">ruby</a></code> elements and with no <code><a href="#the-ruby-element">ruby</a></code> element descendants - <li>A single <code><a href="#the-ruby-element">ruby</a></code> element, but with no further <code><a href="#the-ruby-element">ruby</a></code> element descendants + <li>A single <code><a href="#the-ruby-element">ruby</a></code> element that itself has no <code><a href="#the-ruby-element">ruby</a></code> element descendants </ul><li>One or the other of the following: <ul class="brief"><li>One or more <code><a href="the-rt-element.html#the-rt-element">rt</a></code> elements <li>An <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element followed by one or more <code><a href="the-rt-element.html#the-rt-element">rt</a></code> elements, each of which is itself followed by an <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element Index: the-canvas-element.html =================================================================== RCS file: /sources/public/html5/spec/the-canvas-element.html,v retrieving revision 1.1132 retrieving revision 1.1133 diff -u -d -r1.1132 -r1.1133 --- the-canvas-element.html 15 Oct 2012 17:14:28 -0000 1.1132 +++ the-canvas-element.html 21 Oct 2012 22:44:54 -0000 1.1133 @@ -528,6 +528,8 @@ <p>The list of defined contexts is given on the <a href="http://wiki.whatwg.org/wiki/CanvasContexts">WHATWG Wiki CanvasContexts page</a>. <a href="references.html#refsWHATWGWIKI">[WHATWGWIKI]</a> + <p>Example contexts are the "<code title="canvas-context-2d">2d</code>" <a href="references.html#refsCANVAS2D">[CANVAS2D]</a> and the "<code title="canvas-context-webgl">webgl</code>" context <a href="references.html#refsWEBGL">[WEBGL]</a>.</p> + <p>Returns null if the given context ID is not supported or if the canvas has already been initialized with some other (incompatible) context type (e.g. trying to get a "<code title="canvas-context-2d">2d</code>" context after getting a @@ -542,6 +544,8 @@ that element. When created, a <code><a href="#the-canvas-element">canvas</a></code> element must not have a <a href="#primary-context">primary context</a>.</p> + <p>The most commonly used primary context is the HTML <code title="canvas-context-2d">Canvas 2D</code> Context. <a href="references.html#refsCANVAS2D">[CANVAS2D]</a> + <p>The <dfn id="dom-canvas-getcontext" title="dom-canvas-getContext"><code>getContext(<var title="">contextId</var>, <var title="">arguments...</var>)</code></dfn> method of the <code><a href="#the-canvas-element">canvas</a></code> element, when invoked, must run the following steps:</p> Index: rendering.html =================================================================== RCS file: /sources/public/html5/spec/rendering.html,v retrieving revision 1.265 retrieving revision 1.266 diff -u -d -r1.265 -r1.266 --- rendering.html 15 Oct 2012 16:15:47 -0000 1.265 +++ rendering.html 21 Oct 2012 22:44:53 -0000 1.266 @@ -497,7 +497,9 @@ input[type=hidden i], link, menu[type=context i], meta, noembed, noframes, param, rp, script, source, style, track, title { display: none; -}</pre> +} + +embed[hidden] { display: inline; height: 0; width: 0; }</pre> <!-- because for legacy reasons it still needs to instantiate the plugin --> <p>The user agent is expected to force the 'display' property of <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code> elements for whom <a href="webappapis.html#concept-n-script" title="concept-n-script">scripting is enabled</a> to compute to @@ -777,7 +779,7 @@ <p>When a particular part of a ruby has more than one annotation, the annotations should be distributed on both sides of the base text - so as to minimise the stacking of ruby annotations on one side.</p> + so as to minimize the stacking of ruby annotations on one side.</p> <p class="note">When it becomes possible to do so, the preceding requirement will be updated to be expressed in terms of CSS ruby. Index: offline.html =================================================================== RCS file: /sources/public/html5/spec/offline.html,v retrieving revision 1.1250 retrieving revision 1.1251 diff -u -d -r1.1250 -r1.1251 --- offline.html 15 Oct 2012 16:15:47 -0000 1.1250 +++ offline.html 21 Oct 2012 22:44:53 -0000 1.1251 @@ -373,7 +373,7 @@ <a href="webappapis.html">6 Web application APIs →</a> <ol class="toc"><li><ol><li><a href="offline.html#offline"><span class="secno">5.7 </span>Offline Web applications</a> <ol><li><a href="offline.html#introduction-4"><span class="secno">5.7.1 </span>Introduction</a> - <ol><li><a href="offline.html#appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</a></ol><li><a href="offline.html#appcache"><span class="secno">5.7.2 </span>Application caches</a><li><a href="offline.html#manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</a> + <ol><li><a href="offline.html#supporting-offline-caching-for-legacy-applications"><span class="secno">5.7.1.1 </span>Supporting offline caching for legacy applications</a><li><a href="offline.html#appcacheevents"><span class="secno">5.7.1.2 </span>Event summary</a></ol><li><a href="offline.html#appcache"><span class="secno">5.7.2 </span>Application caches</a><li><a href="offline.html#manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</a> <ol><li><a href="offline.html#some-sample-manifests"><span class="secno">5.7.3.1 </span>Some sample manifests</a><li><a href="offline.html#writing-cache-manifests"><span class="secno">5.7.3.2 </span>Writing cache manifests</a><li><a href="offline.html#parsing-cache-manifests"><span class="secno">5.7.3.3 </span>Parsing cache manifests</a></ol><li><a href="offline.html#downloading-or-updating-an-application-cache"><span class="secno">5.7.4 </span>Downloading or updating an application cache</a><li><a href="offline.html#the-application-cache-selection-algorithm"><span class="secno">5.7.5 </span>The application cache selection algorithm</a><li><a href="offline.html#changesToNetworkingModel"><span class="secno">5.7.6 </span>Changes to the networking model</a><li><a href="offline.html#expiring-application-caches"><span class="secno">5.7.7 </span>Expiring application caches</a><li><a href="offline.html#disk-space"><span class="secno">5.7.8 </span>Disk space</a><li><a href="offline.html#application-cache-api><span class="secno">5.7.9 </span>Application cache API</a><li><a href="offline.html#browser-state"><span class="secno">5.7.10 </span>Browser state</a></ol></ol></ol></nav> <h3 id="offline"><span class="secno">5.7 </span>Offline Web applications</h3> @@ -475,13 +475,61 @@ before the user agent has updated it, and even applications served over TLS can be made to work offline.</p> -<!--(doesn't currently function) - <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p> ---> + <p><a href="http://www.whatwg.org/demos/offline/clock/live-demo/clock.html">View this example online</a>.</p> - <h5 id="appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</h5> + <h5 id="supporting-offline-caching-for-legacy-applications"><span class="secno">5.7.1.1 </span>Supporting offline caching for legacy applications</h5> + + <p><i>This section is non-normative.</i></p> + <p>The application cache feature works best if the application logic is separate from the + application and user data, with the logic (markup, scripts, style sheets, images, etc) listed in + the manifest and stored in the application cache, with a finite number of static HTML pages for + the application, and with the application and user data stored in Web Storage or a client-side + Indexed Database, updated dynamically using Web Sockets, <code>XMLHttpRequest</code>, server-sent + events, or some other similar mechanism.</p> + + <p>This model results in a fast experience for the user: the application immediately loads, and + fresh data is obtained as fast as the network will allow it (possibly while stale data shows).</p> + + <p>Legacy applications, however, tend to be designed so that the user data and the logic are mixed + together in the HTML, with each operation resulting in a new HTML page from the server.</p> + + <div class="example"> + + <p>For example, consider a news application. The typical architecture of such an application, + when not using the application cache feature, is that the user fetches the main page, and the + server returns a dynamically-generated page with the current headlines and the user interface + logic mixed together.</p> + + <p>A news application designed for the application cache feature, however, would instead have the + main page just consist of the logic, and would then have the main page fetch the data separately + from the server, e.g. using <code>XMLHttpRequest</code>.</p> + + </div> + + <p>The mixed-content model does not work well with the application cache feature: since the + content is cached, it would result in the user always seeing the stale data from the previous time + the cache was updated.</p> + + <p>While there is no way to make the legacy model work as fast as the separated model, it + <em>can</em> at least be retrofitted for offline use using the <span title="concept-appcache-mode-prefer-online">prefer-online</span> <a href="#concept-appcache-mode" title="concept-appcache-mode">application cache mode</a>. To do so, list all the static + resources used by the HTML page you want to have work offline in an <a href="#concept-appcache-manifest" title="concept-appcache-manifest">application cache manifest</a>, use the <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute to select that manifest from the HTML file, + and then add the following line at the bottom of the manifest:</p> + + <pre>SETTINGS: +prefer-online +NETWORK: +*</pre> + + <p>This causes the <a href="#application-cache">application cache</a> to only be used for <a href="#concept-appcache-master" title="concept-appcache-master">master entries</a> when the user is offline, and causes the + application cache to be used as an atomic HTTP cache (essentially pinning resources listed in the + manifest), while allowing all resources not listed in the manifest to be accessed normally when + the user is online.</p> + + + + <h5 id="appcacheevents"><span class="secno">5.7.1.2 </span>Event summary</h5> <p><i>This section is non-normative.</i></p> <p>When the user visits a page that declares a manifest, the browser @@ -514,6 +562,8 @@ <tr><td> <dfn id="event-appcache-progress" title="event-appcache-progress"><code>progress</code></dfn> <td> <code>ProgressEvent</code> <td> The user agent is downloading resources listed by the manifest. + The event object's <code title="dom-ProgressEvents-total">total</code> attribute returns the total number of files to be downloaded. + The event object's <code title="dom-ProgressEvents-loaded">loaded</code> attribute returns the number of files processed so far. <td> <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>, <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code>, <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code> <tr><td> <dfn id="event-appcache-cached" title="event-appcache-cached"><code>cached</code></dfn> <td> <code><a href="infrastructure.html#event">Event</a></code> @@ -535,7 +585,13 @@ <tr><td> A fatal error occurred while fetching the resources listed in the manifest. <tr><td> The manifest changed while the update was being run. <td> The user agent will try fetching the files again momentarily. - </table><div class="impl"> + </table><p>These events are cancelable; their default action is for the user agent to show download + progress information. If the page shows its own update UI, canceling the events will prevent the + user agent from showing redundant progress information.</p> + + + + <div class="impl"> <h4 id="appcache"><span class="secno">5.7.2 </span>Application caches</h4> <!--APPCACHE--> Index: system-state-and-capabilities.html =================================================================== RCS file: /sources/public/html5/spec/system-state-and-capabilities.html,v retrieving revision 1.195 retrieving revision 1.196 diff -u -d -r1.195 -r1.196 --- system-state-and-capabilities.html 15 Oct 2012 16:15:48 -0000 1.195 +++ system-state-and-capabilities.html 21 Oct 2012 22:44:54 -0000 1.196 @@ -604,6 +604,7 @@ scheme">whitelisted schemes</dfn>:</p> <ul class="brief"><li><code title="">irc</code></li> + <li><code title="">geo</code></li> <li><code title="">mailto</code></li> <li><code title="">magnet</code></li> <li><code title="">mms</code></li> Index: content-models.html =================================================================== RCS file: /sources/public/html5/spec/content-models.html,v retrieving revision 1.315 retrieving revision 1.316 diff -u -d -r1.315 -r1.316 --- content-models.html 15 Oct 2012 16:15:44 -0000 1.315 +++ content-models.html 21 Oct 2012 22:44:51 -0000 1.316 @@ -842,8 +842,8 @@ <li><p><a href="#run-pre-click-activation-steps">Run pre-click activation steps</a> on the element.</li> - <li><p><a href="webappapis.html#fire-a-click-event">Fire a <code title="event-click">click</code> - event</a> at the element.</li> + <li><p><a href="webappapis.html#fire-a-click-event">Fire a <code title="event-click">click</code> event</a> at the element. If the + <a href="#run-synthetic-click-activation-steps">run synthetic click activation steps</a> algorithm was invoked because the <code title="dom-click"><a href="editing.html#dom-click">click()</a></code> method was invoked, then the <code title="dom-event-isTrusted"><a href="infrastructure.html#dom-event-istrusted">isTrusted</a></code> attribute must be initialized to false.</li> <li> Index: single-page.html =================================================================== RCS file: /sources/public/html5/spec/single-page.html,v retrieving revision 1.184 retrieving revision 1.185 diff -u -d -r1.184 -r1.185 --- single-page.html 15 Oct 2012 22:16:01 -0000 1.184 +++ single-page.html 21 Oct 2012 22:44:53 -0000 1.185 @@ -1145,7 +1145,8 @@ <ol class="toc"> <li><a href="#introduction-4"><span class="secno">5.7.1 </span>Introduction</a> <ol class="toc"> - <li><a href="#appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</a></li></ol></li> + <li><a href="#supporting-offline-caching-for-legacy-applications"><span class="secno">5.7.1.1 </span>Supporting offline caching for legacy applications</a></li> + <li><a href="#appcacheevents"><span class="secno">5.7.1.2 </span>Event summary</a></li></ol></li> <li><a href="#appcache"><span class="secno">5.7.2 </span>Application caches</a></li> <li><a href="#manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</a> <ol class="toc"> @@ -1978,7 +1979,7 @@ <p>Since the malevolent purposes can be remarkably evil, user agent implementors are encouraged to consider how to provide their users - with tools to minimise leaking information that could be used to + with tools to minimize leaking information that could be used to fingerprint a user.</p> <p>Unfortunately, as the first paragraph in this section implies, @@ -8760,6 +8761,15 @@ <li><p>If the algorithm was not invoked with the <i>synchronous flag</i>, perform the remaining steps asynchronously.</p></li> + <li><p>If the <code><a href="#document">Document</a></code> with which any <a href="#concept-task" title="concept-task">tasks</a> <a href="#queue-a-task" title="queue a task">queued</a> by this algorithm would be associated doesn't have an + associated <a href="#browsing-context">browsing context</a>, then abort these steps.</p></li> + +<!--(redundant with 'at a time convenient...' below) + <li><p>Optionally, wait until the <code>Document</code> with which any <span + title="concept-task">tasks</span> <span title="queue a task">queued</span> by this algorithm + would be associated is <span title="active document">active</span>.</p></li> +--> + <li> <p>This is the <i>main step</i>.</p> @@ -10428,7 +10438,7 @@ attempting to impersonate another.</p> <p>When a <code><a href="#document">Document</a></code> is created by a <a href="#concept-script" title="concept-script">script</a> using the <code title="dom-DOMImplementation-createDocument"><a href="#dom-domimplementation-createdocument">createDocument()</a></code> - or <code title="dom-DOMHTMLImplementation-createHTMLDocument">createHTMLDocument()</code> + or <code title="dom-DOMImplementation-createHTMLDocument"><a href="#dom-domimplementation-createhtmldocument">createHTMLDocument()</a></code> APIs, <a href="#the-document's-address">the document's address</a> is the same as <a href="#the-document's-address">the document's address</a> of the <a href="#script's-document">script's document</a>, and the <code><a href="#document">Document</a></code> is both <a href="#ready-for-post-load-tasks">ready for post-load @@ -13252,8 +13262,8 @@ <li><p><a href="#run-pre-click-activation-steps">Run pre-click activation steps</a> on the element.</p></li> - <li><p><a href="#fire-a-click-event">Fire a <code title="event-click">click</code> - event</a> at the element.</p></li> + <li><p><a href="#fire-a-click-event">Fire a <code title="event-click">click</code> event</a> at the element. If the + <a href="#run-synthetic-click-activation-steps">run synthetic click activation steps</a> algorithm was invoked because the <code title="dom-click"><a href="#dom-click">click()</a></code> method was invoked, then the <code title="dom-event-isTrusted"><a href="#dom-event-istrusted">isTrusted</a></code> attribute must be initialized to false.</p></li> <li> @@ -19023,7 +19033,7 @@ <p>Here is a graduation programme with two sections, one for the list of people graduating, and one for the description of the ceremony. (The markup in this example features an uncommon style - sometimes used to minimise the amount of <a href="#inter-element-whitespace">inter-element whitespace</a>.)</p> + sometimes used to minimize the amount of <a href="#inter-element-whitespace">inter-element whitespace</a>.)</p> <pre><!DOCTYPE Html> <Html @@ -23979,7 +23989,7 @@ <li>One or the other of the following: <ul class="brief"> <li><a href="#phrasing-content-1">Phrasing content</a>, but with no <code><a href="#the-ruby-element">ruby</a></code> elements and with no <code><a href="#the-ruby-element">ruby</a></code> element descendants - </li><li>A single <code><a href="#the-ruby-element">ruby</a></code> element, but with no further <code><a href="#the-ruby-element">ruby</a></code> element descendants + </li><li>A single <code><a href="#the-ruby-element">ruby</a></code> element that itself has no <code><a href="#the-ruby-element">ruby</a></code> element descendants </li></ul> </li><li>One or the other of the following: <ul class="brief"> @@ -31358,7 +31368,7 @@ <tr> <td><dfn id="attr-media-preload-none" title="attr-media-preload-none"><code>none</code></dfn> </td><td><dfn id="attr-media-preload-none-state" title="attr-media-preload-none-state">None</dfn> - </td><td>Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimise unnecessary traffic. + </td><td>Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimize unnecessary traffic. This state does not provide a hint regarding how aggressively to actually download the media resource if buffering starts anyway (e.g. once the user hits "play"). </td></tr><tr> <td><dfn id="attr-media-preload-metadata" title="attr-media-preload-metadata"><code>metadata</code></dfn> @@ -36782,110 +36792,87 @@ <!--TOPIC:Video and Audio--> <h5 id="user-interface"><span class="secno">4.8.10.13 </span>User interface</h5> - <p>The <dfn id="attr-media-controls" title="attr-media-controls"><code>controls</code></dfn> - attribute is a <a href="#boolean-attribute">boolean attribute</a>. If present, it - indicates that the author has not provided a scripted controller and - would like the user agent to provide its own set of controls.</p> + <p>The <dfn id="attr-media-controls" title="attr-media-controls"><code>controls</code></dfn> attribute is a <a href="#boolean-attribute">boolean + attribute</a>. If present, it indicates that the author has not provided a scripted controller + and would like the user agent to provide its own set of controls.</p> <div class="impl"> - <p>If the attribute is present, or if <a href="#concept-n-noscript" title="concept-n-noscript">scripting is disabled</a> for the - <a href="#media-element">media element</a>, then the user agent should <dfn id="expose-a-user-interface-to-the-user">expose a - user interface to the user</dfn>. This user interface should include - features to begin playback, pause playback, seek to an arbitrary - position in the content (if the content supports arbitrary seeking), - change the volume, change the display of closed captions or embedded - sign-language tracks, select different audio tracks or turn on audio - descriptions, and show the media content in manners more suitable to - the user (e.g. full-screen video or in an independent resizable - window). Other controls may also be made available.</p> + <p>If the attribute is present, or if <a href="#concept-n-noscript" title="concept-n-noscript">scripting is + disabled</a> for the <a href="#media-element">media element</a>, then the user agent should <dfn id="expose-a-user-interface-to-the-user">expose a user + interface to the user</dfn>. This user interface should include features to begin playback, pause + playback, seek to an arbitrary position in the content (if the content supports arbitrary + seeking), change the volume, change the display of closed captions or embedded sign-language + tracks, select different audio tracks or turn on audio descriptions, and show the media content in + manners more suitable to the user (e.g. full-screen video or in an independent resizable window). + Other controls may also be made available.</p> - <p>If the <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, then the user agent should expose audio tracks - from all the <a href="#slaved-media-elements">slaved media elements</a> (although avoiding - duplicates if the same <a href="#media-resource">media resource</a> is being used - several times). If a <a href="#media-resource">media resource</a>'s audio track - exposed in this way has no known name, and it is the only audio - track for a particular <a href="#media-element">media element</a>, the user agent - should use the element's <code title="attr-title"><a href="#attr-title">title</a></code> - attribute, if any, as the name (or as part of the name) of that - track.</p> + <p>If the <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, then the user + agent should expose audio tracks from all the <a href="#slaved-media-elements">slaved media elements</a> (although + avoiding duplicates if the same <a href="#media-resource">media resource</a> is being used several times). If a + <a href="#media-resource">media resource</a>'s audio track exposed in this way has no known name, and it is the + only audio track for a particular <a href="#media-element">media element</a>, the user agent should use the + element's <code title="attr-title"><a href="#attr-title">title</a></code> attribute, if any, as the name (or as part of the + name) of that track.</p> - <p>Even when the attribute is absent, however, user agents may - provide controls to affect playback of the media resource - (e.g. play, pause, seeking, and volume controls), but such features - should not interfere with the page's normal rendering. For example, - such features could be exposed in the <a href="#media-element">media element</a>'s - context menu.</p> + <p>Even when the attribute is absent, however, user agents may provide controls to affect playback + of the media resource (e.g. play, pause, seeking, and volume controls), but such features should + not interfere with the page's normal rendering. For example, such features could be exposed in the + <a href="#media-element">media element</a>'s context menu. The user agent may implement this simply by <a href="#expose-a-user-interface-to-the-user" title="expose a user interface to the user">exposing a user interface to the user</a> as + described above (as if the <code title="attr-media-controls"><a href="#attr-media-controls">controls</a></code> attribute was + present).</p> - <p>Where possible (specifically, for starting, stopping, pausing, - and unpausing playback, for seeking, for changing the rate of - playback, for fast-forwarding or rewinding, - for listing, enabling, and disabling text tracks, - and for muting or changing the volume of the audio), user interface - features exposed by the user agent must be implemented in terms of - the DOM API described above, so that, e.g., all the same events - fire.</p> + <p>Where possible (specifically, for starting, stopping, pausing, and unpausing playback, for + seeking, for changing the rate of playback, for fast-forwarding or rewinding, for listing, + enabling, and disabling text tracks, and for muting or changing the volume of the audio), user + interface features exposed by the user agent must be implemented in terms of the DOM API described + above, so that, e.g., all the same events fire.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the user agent's user interface for pausing and - unpausing playback, for seeking, for changing the rate of playback, - for fast-forwarding or rewinding, and for muting or changing the - volume of audio of the entire group must be implemented in terms of - the <code><a href="#mediacontroller">MediaController</a></code> API exposed on that <a href="#current-media-controller">current - media controller</a>. When a <a href="#media-element">media element</a> has a - <a href="#current-media-controller">current media controller</a>, and all the <a href="#slaved-media-elements">slaved - media elements</a> of that <code><a href="#mediacontroller">MediaController</a></code> are - paused, the user agent should also unpause all the <a href="#slaved-media-elements">slaved - media elements</a> when the user invokes a user agent interface - control for beginning playback.</p> + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, the user agent's + user interface for pausing and unpausing playback, for seeking, for changing the rate of playback, + for fast-forwarding or rewinding, and for muting or changing the volume of audio of the entire + group must be implemented in terms of the <code><a href="#mediacontroller">MediaController</a></code> API exposed on that + <a href="#current-media-controller">current media controller</a>. When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media + controller</a>, and all the <a href="#slaved-media-elements">slaved media elements</a> of that + <code><a href="#mediacontroller">MediaController</a></code> are paused, the user agent should also unpause all the <a href="#slaved-media-elements">slaved + media elements</a> when the user invokes a user agent interface control for beginning + playback.</p> - <p>The "play" function in the user agent's interface must set the - <code title="">playbackRate</code> attribute to the value of the - <code title="">defaultPlaybackRate</code> attribute before invoking - the <code title="">play()</code> method. - When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the attributes and method with those names on - that <code><a href="#mediacontroller">MediaController</a></code> object must be used. Otherwise, - the attributes and method with those names on the <a href="#media-element">media - element</a> itself must be used. - </p> + <p>The "play" function in the user agent's interface must set the <code title="">playbackRate</code> attribute to the value of the <code title="">defaultPlaybackRate</code> attribute before invoking the <code title="">play()</code> + method. When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, the + attributes and method with those names on that <code><a href="#mediacontroller">MediaController</a></code> object must be used. + Otherwise, the attributes and method with those names on the <a href="#media-element">media element</a> itself + must be used. </p> - <p>Features such as fast-forward or rewind must be implemented by - only changing the <code title="">playbackRate</code> attribute (and - not the <code title="">defaultPlaybackRate</code> attribute). - Again, when a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, the attributes with those names on that - <code><a href="#mediacontroller">MediaController</a></code> object must be used; otherwise, the - attributes with those names on the <a href="#media-element">media element</a> itself - must be used. - </p> + <p>Features such as fast-forward or rewind must be implemented by only changing the <code title="">playbackRate</code> attribute (and not the <code title="">defaultPlaybackRate</code> + attribute). Again, when a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, + the attributes with those names on that <code><a href="#mediacontroller">MediaController</a></code> object must be used; + otherwise, the attributes with those names on the <a href="#media-element">media element</a> itself must be used.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, seeking must be implemented in terms of the <code title="dom-MediaController-currentTime"><a href="#dom-mediacontroller-currenttime">currentTime</a></code> attribute - on that <code><a href="#mediacontroller">MediaController</a></code> object. Otherwise, the user - agent must directly <a href="#dom-media-seek" title="dom-media-seek">seek</a> to the - requested position in the <a href="#media-element">media element</a>'s <a href="#media-timeline">media - timeline</a>.</p> + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, seeking must be + implemented in terms of the <code title="dom-MediaController-currentTime"><a href="#dom-mediacontroller-currenttime">currentTime</a></code> + attribute on that <code><a href="#mediacontroller">MediaController</a></code> object. Otherwise, the user agent must directly + <a href="#dom-media-seek" title="dom-media-seek">seek</a> to the requested position in the <a href="#media-element">media + element</a>'s <a href="#media-timeline">media timeline</a>. For media resources where seeking to an arbitrary + position would be slow, user agents are encouraged to use the <i>approximate-for-speed</i> flag + when seeking in response to the user manipulating an approximate position interface such as a seek + bar.</p> - <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media - controller</a>, user agents may additionally provide the user - with controls that directly manipulate an individual <a href="#media-element">media - element</a> without affecting the <code><a href="#mediacontroller">MediaController</a></code>, - but such features are considered relatively advanced and unlikely to - be useful to most users. + <p>When a <a href="#media-element">media element</a> has a <a href="#current-media-controller">current media controller</a>, user agents may + additionally provide the user with controls that directly manipulate an individual <a href="#media-element">media + element</a> without affecting the <code><a href="#mediacontroller">MediaController</a></code>, but such features are + considered relatively advanced and unlikely to be useful to most users.</p> - </p><p>For the purposes of listing chapters in the <a href="#media-resource">media - resource</a>, only <a href="#text-track" title="text track">text tracks</a> in - the <a href="#media-element">media element</a>'s <a href="#list-of-text-tracks">list of text tracks</a> - that are <a href="#text-track-showing" title="text track showing">showing</a> and whose - <a href="#text-track-kind">text track kind</a> is <code title="dom-TextTrack-kind-chapters"><a href="#dom-texttrack-kind-chapters">chapters</a></code> should be used. - Such tracks must be interpreted according to the <a href="#rules-for-constructing-the-chapter-tree-from-a-text-track">rules for - constructing the chapter tree from a text track</a>.</p> + <p>For the purposes of listing chapters in the <a href="#media-resource">media resource</a>, only <a href="#text-track" title="text + track">text tracks</a> in the <a href="#media-element">media element</a>'s <a href="#list-of-text-tracks">list of text tracks</a> + that are <a href="#text-track-showing" title="text track showing">showing</a> and whose <a href="#text-track-kind">text track kind</a> is + <code title="dom-TextTrack-kind-chapters"><a href="#dom-texttrack-kind-chapters">chapters</a></code> should be used. Such tracks must be + interpreted according to the <a href="#rules-for-constructing-the-chapter-tree-from-a-text-track">rules for constructing the chapter tree from a text + track</a>. When seeking in response to a user maniplating a chapter selection interface, user + agents should not use the <i>approximate-for-speed</i> flag.</p> - <p>The <dfn id="dom-media-controls" title="dom-media-controls"><code>controls</code></dfn> - IDL attribute must <a href="#reflect">reflect</a> the content attribute of the - same name.</p> + <p>The <dfn id="dom-media-controls" title="dom-media-controls"><code>controls</code></dfn> IDL attribute must + <a href="#reflect">reflect</a> the content attribute of the same name.</p> <hr> @@ -37669,7 +37656,9 @@ <p>The list of defined contexts is given on the <a href="http://wiki.whatwg.org/wiki/CanvasContexts">WHATWG Wiki CanvasContexts page</a>. <a href="#refsWHATWGWIKI">[WHATWGWIKI]</a> - </p><p>Returns null if the given context ID is not supported or if the + </p><p>Example contexts are the "<code title="canvas-context-2d">2d</code>" <a href="#refsCANVAS2D">[CANVAS2D]</a> and the "<code title="canvas-context-webgl">webgl</code>" context <a href="#refsWEBGL">[WEBGL]</a>.</p> + + <p>Returns null if the given context ID is not supported or if the canvas has already been initialized with some other (incompatible) context type (e.g. trying to get a "<code title="canvas-context-2d">2d</code>" context after getting a "<code title="canvas-context-webgl">webgl</code>" context).</p> @@ -37685,7 +37674,9 @@ that element. When created, a <code><a href="#the-canvas-element">canvas</a></code> element must not have a <a href="#primary-context">primary context</a>.</p> - <p>The <dfn id="dom-canvas-getcontext" title="dom-canvas-getContext"><code>getContext(<var title="">contextId</var>, <var title="">arguments...</var>)</code></dfn> method of the + <p>The most commonly used primary context is the HTML <code title="canvas-context-2d">Canvas 2D</code> Context. <a href="#refsCANVAS2D">[CANVAS2D]</a> + + </p><p>The <dfn id="dom-canvas-getcontext" title="dom-canvas-getContext"><code>getContext(<var title="">contextId</var>, <var title="">arguments...</var>)</code></dfn> method of the <code><a href="#the-canvas-element">canvas</a></code> element, when invoked, must run the following steps:</p> @@ -38386,19 +38377,13 @@ <ol> - <li><p>If the <code title="event-click"><a href="#event-click">click</a></code> event in - question is not <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> - (i.e. a <code title="dom-click"><a href="#dom-click">click()</a></code> method call was the - reason for the event being dispatched), and the <code><a href="#the-area-element">area</a></code> + <li><p>If the <code title="event-click"><a href="#event-click">click</a></code> event in question is not <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> (i.e. a <code title="dom-click"><a href="#dom-click">click()</a></code> + method call was the reason for the event being dispatched), and the <code><a href="#the-area-element">area</a></code> <!--DOWNLOAD--> - element's <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> - attribute is present and applying <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a - browsing context given a browsing context name</a>, using the - value of the <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> - attribute as the browsing context name, would result in there not - being a chosen browsing context, then throw an - <code><a href="#invalidaccesserror">InvalidAccessError</a></code> exception and abort these - steps.</p></li> + element's <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute is present and applying <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for + choosing a browsing context given a browsing context name</a>, using the value of the <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute as the browsing context name, would result + in there not being a chosen browsing context, then throw an <code><a href="#invalidaccesserror">InvalidAccessError</a></code> + exception and abort these steps.</p></li> <li><p>Otherwise, the user agent must <a href="#following-hyperlinks-0" title="following hyperlinks">follow the hyperlink</a> @@ -63827,9 +63812,8 @@ <li><p>Increase the <code><a href="#document">Document</a></code>'s <a href="#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</p></li> - <li><p>Let <var title="">event</var> be a new - <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> event object with the name <code title="event-beforeunload">beforeunload</code>, which does not - bubble but is cancelable.</p></li> + <li><p>Let <var title="">event</var> be a new <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> + <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> event object with the name <code title="event-beforeunload">beforeunload</code>, which does not bubble but is cancelable.</p></li> <li><p><i>Dispatch</i>: Dispatch <var title="">event</var> at the <code><a href="#document">Document</a></code>'s <code><a href="#window">Window</a></code> object.</p></li> @@ -64219,13 +64203,61 @@ before the user agent has updated it, and even applications served over TLS can be made to work offline.</p> -<!--(doesn't currently function) - <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p> ---> + <p><a href="http://www.whatwg.org/demos/offline/clock/live-demo/clock.html">View this example online</a>.</p> - <h5 id="appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</h5> + <h5 id="supporting-offline-caching-for-legacy-applications"><span class="secno">5.7.1.1 </span>Supporting offline caching for legacy applications</h5> + + <p><i>This section is non-normative.</i></p> + <p>The application cache feature works best if the application logic is separate from the + application and user data, with the logic (markup, scripts, style sheets, images, etc) listed in + the manifest and stored in the application cache, with a finite number of static HTML pages for + the application, and with the application and user data stored in Web Storage or a client-side + Indexed Database, updated dynamically using Web Sockets, <code>XMLHttpRequest</code>, server-sent + events, or some other similar mechanism.</p> + + <p>This model results in a fast experience for the user: the application immediately loads, and + fresh data is obtained as fast as the network will allow it (possibly while stale data shows).</p> + + <p>Legacy applications, however, tend to be designed so that the user data and the logic are mixed + together in the HTML, with each operation resulting in a new HTML page from the server.</p> + + <div class="example"> + + <p>For example, consider a news application. The typical architecture of such an application, + when not using the application cache feature, is that the user fetches the main page, and the + server returns a dynamically-generated page with the current headlines and the user interface + logic mixed together.</p> + + <p>A news application designed for the application cache feature, however, would instead have the + main page just consist of the logic, and would then have the main page fetch the data separately + from the server, e.g. using <code>XMLHttpRequest</code>.</p> + + </div> + + <p>The mixed-content model does not work well with the application cache feature: since the + content is cached, it would result in the user always seeing the stale data from the previous time + the cache was updated.</p> + + <p>While there is no way to make the legacy model work as fast as the separated model, it + <em>can</em> at least be retrofitted for offline use using the <span title="concept-appcache-mode-prefer-online">prefer-online</span> <a href="#concept-appcache-mode" title="concept-appcache-mode">application cache mode</a>. To do so, list all the static + resources used by the HTML page you want to have work offline in an <a href="#concept-appcache-manifest" title="concept-appcache-manifest">application cache manifest</a>, use the <code title="attr-html-manifest"><a href="#attr-html-manifest">manifest</a></code> attribute to select that manifest from the HTML file, + and then add the following line at the bottom of the manifest:</p> + + <pre>SETTINGS: +prefer-online +NETWORK: +*</pre> + + <p>This causes the <a href="#application-cache">application cache</a> to only be used for <a href="#concept-appcache-master" title="concept-appcache-master">master entries</a> when the user is offline, and causes the + application cache to be used as an atomic HTTP cache (essentially pinning resources listed in the + manifest), while allowing all resources not listed in the manifest to be accessed normally when + the user is online.</p> + + + + <h5 id="appcacheevents"><span class="secno">5.7.1.2 </span>Event summary</h5> <p><i>This section is non-normative.</i></p> <p>When the user visits a page that declares a manifest, the browser @@ -64266,6 +64298,8 @@ <td> <dfn id="event-appcache-progress" title="event-appcache-progress"><code>progress</code></dfn> </td><td> <code>ProgressEvent</code> </td><td> The user agent is downloading resources listed by the manifest. + The event object's <code title="dom-ProgressEvents-total">total</code> attribute returns the total number of files to be downloaded. + The event object's <code title="dom-ProgressEvents-loaded">loaded</code> attribute returns the number of files processed so far. </td><td> <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>, <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code>, <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code> </td></tr><tr> <td> <dfn id="event-appcache-cached" title="event-appcache-cached"><code>cached</code></dfn> @@ -64296,6 +64330,10 @@ </td><td> The user agent will try fetching the files again momentarily. </td></tr></tbody></table> + <p>These events are cancelable; their default action is for the user agent to show download + progress information. If the page shows its own update UI, canceling the events will prevent the + user agent from showing redundant progress information.</p> + <div class="impl"> @@ -68074,29 +68112,23 @@ firing a <code title="event-click"><a href="#event-click">click</a></code> event on the element. <a href="#refsDOMEVENTS">[DOMEVENTS]</a></p> - <p><dfn id="fire-a-simple-event" title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise - stated) and is not cancelable (except where otherwise stated), and - which uses the <code><a href="#event">Event</a></code> interface, must be created and - dispatched at the given target.</p> + <p><dfn id="fire-a-simple-event" title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means + that a <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> event with the name <var title="">e</var>, which does not bubble (except where otherwise stated) and is not cancelable + (except where otherwise stated), and which uses the <code><a href="#event">Event</a></code> interface, must be created + and dispatched at the given target.</p> - <p><dfn id="fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">Firing a synthetic - mouse event named <var title="">e</var></dfn> means that an event - with the name <var title="">e</var>, which does not bubble (except - where otherwise stated) and is not cancelable (except where - otherwise stated), and which uses the <code><a href="#mouseevent-10">MouseEvent</a></code> - interface, must be created and dispatched at the given target. The - event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> attributes - initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according to the - current state of the key input device, if any (false for any keys - that are not available), its <code title="">detail</code> attribute - initialized to 1, and its <code title="">relatedTarget</code> - attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return - values appropriately describing the state of the key input device at - the time the event is created.</p> + <p><dfn id="fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">Firing a synthetic mouse event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which is <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> (except where otherwise stated), does not bubble + (except where otherwise stated), is not cancelable (except where otherwise stated), and which uses + the <code><a href="#mouseevent-10">MouseEvent</a></code> interface, must be created and dispatched at the given target. The + event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> + attributes initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, + <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according + to the current state of the key input device, if any (false for any keys that are not available), + its <code title="">detail</code> attribute initialized to 1, and its <code title="">relatedTarget</code> attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return values appropriately + describing the state of the key input device at the time the event is created.</p> - <p><dfn id="fire-a-click-event" title="fire a click event">Firing a <code title="event-click">click</code> event</dfn> means <a href="#fire-a-synthetic-mouse-event" title="fire - a synthetic mouse event">firing a synthetic mouse event named <code title="event-click">click</code></a>, which bubbles and is - cancelable.</p> + <p><dfn id="fire-a-click-event" title="fire a click event">Firing a <code title="event-click">click</code> event</dfn> + means <a href="#fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">firing a synthetic mouse event named <code title="event-click">click</code></a>, which bubbles and is cancelable.</p> <p>The default action of these events is to do nothing except where otherwise stated.</p> @@ -69540,6 +69572,7 @@ <ul class="brief"> <li><code title="">irc</code></li> + <li><code title="">geo</code></li> <li><code title="">mailto</code></li> <li><code title="">magnet</code></li> <li><code title="">mms</code></li> @@ -70736,11 +70769,13 @@ </ul> - <p>In addition, each shape that is generated for an - <code><a href="#the-area-element">area</a></code> element should be <a href="#focusable">focusable</a>, unless - platform conventions dictate otherwise. (A single <code><a href="#the-area-element">area</a></code> - element can correspond to multiple shapes, since image maps can be - reused with multiple images on a page.)</p> + <p>In addition, each shape that is generated for an <code><a href="#the-area-element">area</a></code> element, any + user-agent-provided interface components of <span title="media elements">media elements</span> + (e.g. a play button), and distinct user interface components of form controls (e.g. "up" and + "down" buttons on an <code title="attr-input-type-number"><a href="#number-state-(type=number)"><input type=number></a></code> spin + control), should be <a href="#focusable">focusable</a>, unless platform conventions dictate otherwise. (A + single <code><a href="#the-area-element">area</a></code> element can correspond to multiple shapes, since image maps can be reused + with multiple images on a page.)</p> <p>The user agent may also make part of a <code><a href="#the-details-element">details</a></code> element's rendering <a href="#focusable">focusable</a>, to enable the element to @@ -70748,6 +70783,9 @@ from the <code><a href="#the-details-element">details</a></code> or <code><a href="#the-summary-element">summary</a></code> element being focusable.</p> + <p>Notwithstanding the above, user agents may make <em>any</em> element or part of an element + focusable, especially to aid with accessibility or to better match platform conventions.</p> + <hr> <p>The <dfn id="focusing-steps">focusing steps</dfn> for an element are as follows:</p> @@ -72995,15 +73033,12 @@ <li> - <p>Create a <code><a href="#dragevent">DragEvent</a></code> object and initialize it to - have the given name <var title="">e</var>, to bubble, to be - cancelable unless <var title="">e</var> is <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>, and to have the <code title="dom-UIEvent-detail"><a href="#dom-uievent-detail">detail</a></code> attribute initialized to - zero, the mouse and key attributes initialized according to the - state of the input devices as they would be for user interaction - events, the <code title="">relatedTarget</code> attribute - initialized to null, and the <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> attribute - initialized to <var title="">dataTransfer</var>, the - <code><a href="#datatransfer">DataTransfer</a></code> object created above.</p> + <p>Create a <a href="#concept-events-trusted" title="concept-events-trusted">trusted</a> <code><a href="#dragevent">DragEvent</a></code> object + and initialize it to have the given name <var title="">e</var>, to bubble, to be cancelable + unless <var title="">e</var> is <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>, and to have the <code title="dom-UIEvent-detail"><a href="#dom-uievent-detail">detail</a></code> attribute initialized to zero, the mouse and key + attributes initialized according to the state of the input devices as they would be for user + interaction events, the <code title="">relatedTarget</code> attribute initialized to null, and + the <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> attribute initialized to <var title="">dataTransfer</var>, the <code><a href="#datatransfer">DataTransfer</a></code> object created above.</p> <!-- interaction event spec point --> @@ -79525,6 +79560,10 @@ <hr> + <!-- The names of these algorithms are kinda confusing; e.g. see the confusion in + https://www.w3.org/Bugs/Public/show_bug.cgi?id=18367 + Not sure what we could call them instead, though... --> + <p>When the steps below require the UA to <dfn id="insert-an-html-element">insert an HTML element</dfn> for a token, the UA must first <a href="#create-an-element-for-the-token">create an element for the token</a> in the <a href="#html-namespace-0">HTML namespace</a>, and then @@ -79722,6 +79761,10 @@ parent">foster parented</dfn>, the node <var title="">node</var> must be inserted into the <i><a href="#foster-parent-element">foster parent element</a></i>.</p> + <p class="note">This typically happens as part of the <a href="#insert-an-html-element">insert an HTML element</a> + algorithm above: when that algorithm would normally insert the newly created node into the + <a href="#current-node">current node</a>, it gets inserted into the <i><a href="#foster-parent-element">foster parent element</a></i> instead.</p> + <p>The <dfn id="foster-parent-element">foster parent element</dfn> is the parent element of the last <code><a href="#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of open elements</a>, if there is a <code><a href="#the-table-element">table</a></code> element and it has @@ -87197,7 +87240,9 @@ input[type=hidden i], link, menu[type=context i], meta, noembed, noframes, param, rp, script, source, style, track, title { display: none; -}</pre> +} + +embed[hidden] { display: inline; height: 0; width: 0; }</pre> <!-- because for legacy reasons it still needs to instantiate the plugin --> <p>The user agent is expected to force the 'display' property of <code><a href="#the-noscript-element">noscript</a></code> elements for whom <a href="#concept-n-script" title="concept-n-script">scripting is enabled</a> to compute to @@ -87519,7 +87564,7 @@ <p>When a particular part of a ruby has more than one annotation, the annotations should be distributed on both sides of the base text - so as to minimise the stacking of ruby annotations on one side.</p> + so as to minimize the stacking of ruby annotations on one side.</p> <p class="note">When it becomes possible to do so, the preceding requirement will be updated to be expressed in terms of CSS ruby. @@ -96112,6 +96157,9 @@ <dt id="refsBOCU1">[BOCU1]</dt> <dd>(Non-normative) <cite><a href="http://www.unicode.org/notes/tn6/">UTN #6: BOCU-1: MIME-Compatible Unicode Compression</a></cite>, M. Scherer, M. Davis. Unicode Consortium.</dd> + <dt id="refsCANVAS2D">[CANVAS2D]</dt> + <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/2dcontext/">HTML Canvas 2D Context</a></cite>, R. Cabanier, E. Graff, J. Munro, T. Wiltzius. W3C.</dd> + <dt id="refsCESU8">[CESU8]</dt> <dd>(Non-normative) <cite><a href="http://www.unicode.org/reports/tr26/">UTR #26: Compatibility Encoding Scheme For UTF-16: 8-BIT (CESU-8)</a></cite>, T. Phipps. Unicode Consortium.</dd> Index: urls.html =================================================================== RCS file: /sources/public/html5/spec/urls.html,v retrieving revision 1.275 retrieving revision 1.276 diff -u -d -r1.275 -r1.276 --- urls.html 15 Oct 2012 16:15:55 -0000 1.275 +++ urls.html 21 Oct 2012 22:44:54 -0000 1.276 @@ -1298,6 +1298,15 @@ <li><p>If the algorithm was not invoked with the <i>synchronous flag</i>, perform the remaining steps asynchronously.</li> + <li><p>If the <code><a href="dom.html#document">Document</a></code> with which any <a href="webappapis.html#concept-task" title="concept-task">tasks</a> <a href="webappapis.html#queue-a-task" title="queue a task">queued</a> by this algorithm would be associated doesn't have an + associated <a href="browsers.html#browsing-context">browsing context</a>, then abort these steps.</li> + +<!--(redundant with 'at a time convenient...' below) + <li><p>Optionally, wait until the <code>Document</code> with which any <span + title="concept-task">tasks</span> <span title="queue a task">queued</span> by this algorithm + would be associated is <span title="active document">active</span>.</p></li> +--> + <li> <p>This is the <i>main step</i>.</p> Index: tokenization.html =================================================================== RCS file: /sources/public/html5/spec/tokenization.html,v retrieving revision 1.205 retrieving revision 1.206 diff -u -d -r1.205 -r1.206 --- tokenization.html 15 Oct 2012 16:15:55 -0000 1.205 +++ tokenization.html 21 Oct 2012 22:44:54 -0000 1.206 @@ -2681,7 +2681,9 @@ <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> and <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> based on the element's attributes.)</p> - <hr><p>When the steps below require the UA to <dfn id="insert-an-html-element">insert an HTML + <hr><!-- The names of these algorithms are kinda confusing; e.g. see the confusion in + https://www.w3.org/Bugs/Public/show_bug.cgi?id=18367 + Not sure what we could call them instead, though... --><p>When the steps below require the UA to <dfn id="insert-an-html-element">insert an HTML element</dfn> for a token, the UA must first <a href="#create-an-element-for-the-token">create an element for the token</a> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a>, and then append this node to the <a href="parsing.html#current-node">current node</a>, and push it onto @@ -2858,6 +2860,10 @@ parent">foster parented</dfn>, the node <var title="">node</var> must be inserted into the <i><a href="#foster-parent-element">foster parent element</a></i>.</p> + <p class="note">This typically happens as part of the <a href="#insert-an-html-element">insert an HTML element</a> + algorithm above: when that algorithm would normally insert the newly created node into the + <a href="parsing.html#current-node">current node</a>, it gets inserted into the <i><a href="#foster-parent-element">foster parent element</a></i> instead.</p> + <p>The <dfn id="foster-parent-element">foster parent element</dfn> is the parent element of the last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="parsing.html#stack-of-open-elements">stack of open elements</a>, if there is a <code><a href="the-table-element.html#the-table-element">table</a></code> element and it has Index: introduction.html =================================================================== RCS file: /sources/public/html5/spec/introduction.html,v retrieving revision 1.1271 retrieving revision 1.1272 diff -u -d -r1.1271 -r1.1272 --- introduction.html 15 Oct 2012 16:15:46 -0000 1.1271 +++ introduction.html 21 Oct 2012 22:44:53 -0000 1.1272 @@ -864,7 +864,7 @@ <p>Since the malevolent purposes can be remarkably evil, user agent implementors are encouraged to consider how to provide their users - with tools to minimise leaking information that could be used to + with tools to minimize leaking information that could be used to fingerprint a user.</p> <p>Unfortunately, as the first paragraph in this section implies, Index: editing.html =================================================================== RCS file: /sources/public/html5/spec/editing.html,v retrieving revision 1.1258 retrieving revision 1.1259 diff -u -d -r1.1258 -r1.1259 --- editing.html 15 Oct 2012 16:15:44 -0000 1.1258 +++ editing.html 21 Oct 2012 22:44:52 -0000 1.1259 @@ -807,11 +807,13 @@ <li><a href="browsers.html#browsing-context-container" title="browsing context container">Browsing context containers</a></li> <!-- like <iframe>s --> - </ul><p>In addition, each shape that is generated for an - <code><a href="the-area-element.html#the-area-element">area</a></code> element should be <a href="#focusable">focusable</a>, unless - platform conventions dictate otherwise. (A single <code><a href="the-area-element.html#the-area-element">area</a></code> - element can correspond to multiple shapes, since image maps can be - reused with multiple images on a page.)</p> + </ul><p>In addition, each shape that is generated for an <code><a href="the-area-element.html#the-area-element">area</a></code> element, any + user-agent-provided interface components of <span title="media elements">media elements</span> + (e.g. a play button), and distinct user interface components of form controls (e.g. "up" and + "down" buttons on an <code title="attr-input-type-number"><a href="states-of-the-type-attribute.html#number-state-(type=number)"><input type=number></a></code> spin + control), should be <a href="#focusable">focusable</a>, unless platform conventions dictate otherwise. (A + single <code><a href="the-area-element.html#the-area-element">area</a></code> element can correspond to multiple shapes, since image maps can be reused + with multiple images on a page.)</p> <p>The user agent may also make part of a <code><a href="the-details-element.html#the-details-element">details</a></code> element's rendering <a href="#focusable">focusable</a>, to enable the element to @@ -819,6 +821,9 @@ from the <code><a href="the-details-element.html#the-details-element">details</a></code> or <code><a href="the-summary-element.html#the-summary-element">summary</a></code> element being focusable.</p> + <p>Notwithstanding the above, user agents may make <em>any</em> element or part of an element + focusable, especially to aid with accessibility or to better match platform conventions.</p> + <hr><p>The <dfn id="focusing-steps">focusing steps</dfn> for an element are as follows:</p> <ol><li><p>If the element is not <a href="infrastructure.html#in-a-document" title="in a Document">in a Index: the-area-element.html =================================================================== RCS file: /sources/public/html5/spec/the-area-element.html,v retrieving revision 1.204 retrieving revision 1.205 diff -u -d -r1.204 -r1.205 --- the-area-element.html 15 Oct 2012 16:15:49 -0000 1.204 +++ the-area-element.html 21 Oct 2012 22:44:54 -0000 1.205 @@ -550,19 +550,13 @@ <p>The <a href="content-models.html#activation-behavior">activation behavior</a> of <code><a href="#the-area-element">area</a></code> elements is to run the following steps:</p> - <ol><li><p>If the <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event in - question is not <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> - (i.e. a <code title="dom-click"><a href="editing.html#dom-click">click()</a></code> method call was the - reason for the event being dispatched), and the <code><a href="#the-area-element">area</a></code> + <ol><li><p>If the <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event in question is not <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> (i.e. a <code title="dom-click"><a href="editing.html#dom-click">click()</a></code> + method call was the reason for the event being dispatched), and the <code><a href="#the-area-element">area</a></code> <!--DOWNLOAD--> - element's <code title="attr-hyperlink-target"><a href="links.html#attr-hyperlink-target">target</a></code> - attribute is present and applying <a href="browsers.html#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a - browsing context given a browsing context name</a>, using the - value of the <code title="attr-hyperlink-target"><a href="links.html#attr-hyperlink-target">target</a></code> - attribute as the browsing context name, would result in there not - being a chosen browsing context, then throw an - <code><a href="infrastructure.html#invalidaccesserror">InvalidAccessError</a></code> exception and abort these - steps.</li> + element's <code title="attr-hyperlink-target"><a href="links.html#attr-hyperlink-target">target</a></code> attribute is present and applying <a href="browsers.html#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for + choosing a browsing context given a browsing context name</a>, using the value of the <code title="attr-hyperlink-target"><a href="links.html#attr-hyperlink-target">target</a></code> attribute as the browsing context name, would result + in there not being a chosen browsing context, then throw an <code><a href="infrastructure.html#invalidaccesserror">InvalidAccessError</a></code> + exception and abort these steps.</li> <li><p>Otherwise, the user agent must <a href="links.html#following-hyperlinks-0" title="following hyperlinks">follow the hyperlink</a> Index: references.html =================================================================== RCS file: /sources/public/html5/spec/references.html,v retrieving revision 1.1273 retrieving revision 1.1274 diff -u -d -r1.1273 -r1.1274 --- references.html 15 Oct 2012 16:15:47 -0000 1.1273 +++ references.html 21 Oct 2012 22:44:53 -0000 1.1274 @@ -426,6 +426,9 @@ <dt id="refsBOCU1">[BOCU1]</dt> <dd>(Non-normative) <cite><a href="http://www.unicode.org/notes/tn6/">UTN #6: BOCU-1: MIME-Compatible Unicode Compression</a></cite>, M. Scherer, M. Davis. Unicode Consortium.</dd> + <dt id="refsCANVAS2D">[CANVAS2D]</dt> + <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/2dcontext/">HTML Canvas 2D Context</a></cite>, R. Cabanier, E. Graff, J. Munro, T. Wiltzius. W3C.</dd> + <dt id="refsCESU8">[CESU8]</dt> <dd>(Non-normative) <cite><a href="http://www.unicode.org/reports/tr26/">UTR #26: Compatibility Encoding Scheme For UTF-16: 8-BIT (CESU-8)</a></cite>, T. Phipps. Unicode Consortium.</dd> Index: the-section-element.html =================================================================== RCS file: /sources/public/html5/spec/the-section-element.html,v retrieving revision 1.205 retrieving revision 1.206 diff -u -d -r1.205 -r1.206 --- the-section-element.html 15 Oct 2012 16:15:53 -0000 1.205 +++ the-section-element.html 21 Oct 2012 22:44:54 -0000 1.206 @@ -445,7 +445,7 @@ <p>Here is a graduation programme with two sections, one for the list of people graduating, and one for the description of the ceremony. (The markup in this example features an uncommon style - sometimes used to minimise the amount of <a href="content-models.html#inter-element-whitespace">inter-element whitespace</a>.)</p> + sometimes used to minimize the amount of <a href="content-models.html#inter-element-whitespace">inter-element whitespace</a>.)</p> <pre><!DOCTYPE Html> <Html Index: webappapis.html =================================================================== RCS file: /sources/public/html5/spec/webappapis.html,v retrieving revision 1.403 retrieving revision 1.404 diff -u -d -r1.403 -r1.404 --- webappapis.html 15 Oct 2012 16:15:55 -0000 1.403 +++ webappapis.html 21 Oct 2012 22:44:54 -0000 1.404 @@ -1815,29 +1815,23 @@ firing a <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event on the element. <a href="references.html#refsDOMEVENTS">[DOMEVENTS]</a></p> - <p><dfn id="fire-a-simple-event" title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise - stated) and is not cancelable (except where otherwise stated), and - which uses the <code><a href="infrastructure.html#event">Event</a></code> interface, must be created and - dispatched at the given target.</p> + <p><dfn id="fire-a-simple-event" title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means + that a <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> event with the name <var title="">e</var>, which does not bubble (except where otherwise stated) and is not cancelable + (except where otherwise stated), and which uses the <code><a href="infrastructure.html#event">Event</a></code> interface, must be created + and dispatched at the given target.</p> - <p><dfn id="fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">Firing a synthetic - mouse event named <var title="">e</var></dfn> means that an event - with the name <var title="">e</var>, which does not bubble (except - where otherwise stated) and is not cancelable (except where - otherwise stated), and which uses the <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code> - interface, must be created and dispatched at the given target. The - event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> attributes - initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according to the - current state of the key input device, if any (false for any keys - that are not available), its <code title="">detail</code> attribute - initialized to 1, and its <code title="">relatedTarget</code> - attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return - values appropriately describing the state of the key input device at - the time the event is created.</p> + <p><dfn id="fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">Firing a synthetic mouse event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which is <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> (except where otherwise stated), does not bubble + (except where otherwise stated), is not cancelable (except where otherwise stated), and which uses + the <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code> interface, must be created and dispatched at the given target. The + event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> + attributes initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, + <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according + to the current state of the key input device, if any (false for any keys that are not available), + its <code title="">detail</code> attribute initialized to 1, and its <code title="">relatedTarget</code> attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return values appropriately + describing the state of the key input device at the time the event is created.</p> - <p><dfn id="fire-a-click-event" title="fire a click event">Firing a <code title="event-click">click</code> event</dfn> means <a href="#fire-a-synthetic-mouse-event" title="fire - a synthetic mouse event">firing a synthetic mouse event named <code title="event-click">click</code></a>, which bubbles and is - cancelable.</p> + <p><dfn id="fire-a-click-event" title="fire a click event">Firing a <code title="event-click">click</code> event</dfn> + means <a href="#fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">firing a synthetic mouse event named <code title="event-click">click</code></a>, which bubbles and is cancelable.</p> <p>The default action of these events is to do nothing except where otherwise stated.</p> Index: dnd.html =================================================================== RCS file: /sources/public/html5/spec/dnd.html,v retrieving revision 1.284 retrieving revision 1.285 diff -u -d -r1.284 -r1.285 --- dnd.html 15 Oct 2012 16:15:44 -0000 1.284 +++ dnd.html 21 Oct 2012 22:44:52 -0000 1.285 @@ -1631,15 +1631,12 @@ <li> - <p>Create a <code><a href="#dragevent">DragEvent</a></code> object and initialize it to - have the given name <var title="">e</var>, to bubble, to be - cancelable unless <var title="">e</var> is <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>, and to have the <code title="dom-UIEvent-detail"><a href="infrastructure.html#dom-uievent-detail">detail</a></code> attribute initialized to - zero, the mouse and key attributes initialized according to the - state of the input devices as they would be for user interaction - events, the <code title="">relatedTarget</code> attribute - initialized to null, and the <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> attribute - initialized to <var title="">dataTransfer</var>, the - <code><a href="#datatransfer">DataTransfer</a></code> object created above.</p> + <p>Create a <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> <code><a href="#dragevent">DragEvent</a></code> object + and initialize it to have the given name <var title="">e</var>, to bubble, to be cancelable + unless <var title="">e</var> is <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>, and to have the <code title="dom-UIEvent-detail"><a href="infrastructure.html#dom-uievent-detail">detail</a></code> attribute initialized to zero, the mouse and key + attributes initialized according to the state of the input devices as they would be for user + interaction events, the <code title="">relatedTarget</code> attribute initialized to null, and + the <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> attribute initialized to <var title="">dataTransfer</var>, the <code><a href="#datatransfer">DataTransfer</a></code> object created above.</p> <!-- interaction event spec point -->
Received on Sunday, 21 October 2012 22:45:03 UTC