[html5] r4834 - [acgiow] (2) Disallow empty URLs for external resources. Make UAs ignore such re [...]
whatwg at whatwg.org
whatwg at whatwg.org
Mon Mar 8 16:35:21 PST 2010
Author: ianh
Date: 2010-03-08 16:35:19 -0800 (Mon, 08 Mar 2010)
New Revision: 4834
Modified:
complete.html
index
source
Log:
[acgiow] (2) Disallow empty URLs for external resources. Make UAs ignore such references.
Modified: complete.html
===================================================================
--- complete.html 2010-03-08 22:45:32 UTC (rev 4833)
+++ complete.html 2010-03-09 00:35:19 UTC (rev 4834)
@@ -157,7 +157,7 @@
<header class=head id=head><p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
<hgroup><h1>Web Applications 1.0</h1>
- <h2 class="no-num no-toc">Draft Standard — 8 March 2010</h2>
+ <h2 class="no-num no-toc">Draft Standard — 9 March 2010</h2>
</hgroup><p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
<p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
<!--<p class="impl"><strong>Implementors!</strong> We have a <a href="http://www.whatwg.org/mailing-list#implementors">mailing list</a> for you too!</p>-->
@@ -2007,7 +2007,15 @@
<p>The term <dfn id=html-mime-type>HTML MIME type</dfn> is used to refer to the <a href=#mime-type title="MIME type">MIME types</a> <code><a href=#text/html>text/html</a></code> and
<code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>.</p>
+ <p>A resource's <dfn id=critical-subresources>critical subresources</dfn> are those that the
+ resource needs to have available to be correctly processed. Which
+ resources are considered critical or not is defined by the
+ specification that defines the resource's format. For CSS resources,
+ only <code title="">@import</code> rules introduce <a href=#critical-subresources>critical
+ subresources</a>; other resources, e.g. fonts or backgrounds, are
+ not.</p>
+
<h4 id=xml><span class=secno>2.1.2 </span>XML</h4>
<p id=html-namespace>To ease migration from HTML to XHTML, UAs
@@ -4858,6 +4866,9 @@
<span>valid Web address</span> as defined by the Web addresses
specification. <a href=#refsWEBADDRESSES>[WEBADDRESSES]</a></p>
+ <p>A <a href=#url>URL</a> is a <dfn id=valid-non-empty-url>valid non-empty URL</dfn> if it is a
+ <a href=#valid-url>valid URL</a> but it is not the empty string.</p>
+
<p>A <a href=#url>URL</a> is an <dfn id=absolute-url>absolute URL</dfn> if it is an
<span>absolute Web address</span> as defined by the Web addresses
specification. <a href=#refsWEBADDRESSES>[WEBADDRESSES]</a></p>
@@ -10716,7 +10727,7 @@
attribute gives the address of the document's <a href=#application-cache>application
cache</a> <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>, if there is
one. If the attribute is present, the attribute's value must be a
- <a href=#valid-url>valid URL</a>.</p>
+ <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
only <a href=#concept-appcache-init title=concept-appcache-init>has an effect</a> during
@@ -11024,9 +11035,9 @@
document to other resources.</p>
<p>The destination of the link(s) is given by the <dfn id=attr-link-href title=attr-link-href><code>href</code></dfn> attribute, which must
- be present and must contain a <a href=#valid-url>valid URL</a>. <span class=impl>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code>
- attribute is absent, then the element does not define a
- link.</span></p>
+ be present and must contain a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>. <span class=impl>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute is absent, then the
+ element does not define a link.</span></p>
<p>A <code><a href=#the-link-element>link</a></code> element must have either a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute, or an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, or both.</p>
@@ -11062,52 +11073,60 @@
<p>The exact behavior for links to external resources depends on the
exact relationship, as defined for the relevant link type. Some of
the attributes control whether or not the external resource is to be
- applied (as defined below). <span class=impl>For external
- resources that are represented in the DOM (for example, style
- sheets), the DOM representation must be made available even if the
- resource is not applied. To <dfn id=concept-link-obtain title=concept-link-obtain>obtain
- the resource</dfn>, the user agent must <a href=#resolve-a-url title="resolve a
- url">resolve</a> the <a href=#url>URL</a> given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, relative to the
- element, and then <a href=#fetch>fetch</a> the resulting <a href=#absolute-url>absolute
- URL</a>. User agents may opt to only try to obtain such resources
- when they are needed, instead of pro-actively <a href=#fetch title=fetch>fetching</a> all the external resources that are
- not applied.</span></p> <!-- http-origin privacy sensitive -->
+ applied (as defined below).</p>
<div class=impl>
+ <p>For external resources that are represented in the
+ DOM (for example, style sheets), the DOM representation must be made
+ available even if the resource is not applied. To <dfn id=concept-link-obtain title=concept-link-obtain>obtain the resource</dfn>, the user
+ agent must run the following steps:</p>
+
+ <ol><li><p>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute's
+ value is the empty string, then abort these steps.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, relative to the
+ element.</li>
+
+ <li><p>If the previous step fails, then abort these steps.</li>
+
+ <li><p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute
+ URL</a>.</li> <!-- http-origin privacy sensitive -->
+
+ </ol><p>User agents may opt to only try to obtain such resources when
+ they are needed, instead of pro-actively <a href=#fetch title=fetch>fetching</a> all the external resources that are
+ not applied.</p>
+
<p>The semantics of the protocol used (e.g. HTTP) must be followed
when fetching external resources. (For example, redirects will be
followed and 404 responses will cause the external resource to not
be applied.)</p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the resource and its critical
- subresources are complete, the user agent must, if the loads were
- successful, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ <p>Once the attempts to obtain the resource and its <a href=#critical-subresources>critical
+ subresources</a> are complete, the user agent must, if the loads
+ were successful, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
event</a> named <code title=event-load>load</code> at the
<code><a href=#the-link-element>link</a></code> element, or, if the resource or one of its
- critical subresources failed to completely load for any reason
- (e.g. DNS error, HTTP 404 response, a connection being prematurely
- closed, unsupported Content-Type), <a href=#queue-a-task>queue a task</a> to
- <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-link-element>link</a></code>
+ <a href=#critical-subresources>critical subresources</a> failed to completely load for any
+ reason (e.g. DNS error, HTTP 404 response, a connection being
+ prematurely closed, unsupported Content-Type), <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-link-element>link</a></code>
element. Non-network errors in processing the resource or its
subresources (e.g. CSS parse errors, PNG decoding errors) are not
failures for the purposes of this paragraph.</p>
- <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation
- task source</a>.</p>
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</p>
<p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until all the attempts to obtain the resource and
- its critical subresources are complete. (Resources that the user
- agent has not yet attempted to obtain, e.g. because it is waiting
- for the resource to be needed, do not <a href=#delay-the-load-event>delay the load
+ its <a href=#critical-subresources>critical subresources</a> are complete. (Resources that
+ the user agent has not yet attempted to obtain, e.g. because it is
+ waiting for the resource to be needed, do not <a href=#delay-the-load-event>delay the load
event</a>.)</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
<hr><p id=linkui>Interactive user agents may provide users with a
means to <a href=#following-hyperlinks title="following hyperlinks">follow the
hyperlinks</a> created using the <code><a href=#the-link-element>link</a></code> element,
@@ -12316,18 +12335,18 @@
URL don't affect the CSS --></p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the style sheet's critical
- subresources, if any, are complete, or, if the style sheet has no
- critical subresources, once the style sheet has been parsed and
- processed, the user agent must, if the loads were successful or
- there were none, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
- event</a> named <code title=event-load>load</code> at the
- <code><a href=#the-style-element>style</a></code> element, or, if one of the style sheet's critical
- subresources failed to completely load for any reason (e.g. DNS
- error, HTTP 404 response, a connection being prematurely closed,
- unsupported Content-Type), <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
- simple event</a> named <code title=event-error>error</code> at
- the <code><a href=#the-style-element>style</a></code> element. Non-network errors in processing the
+ <p>Once the attempts to obtain the style sheet's <a href=#critical-subresources>critical
+ subresources</a>, if any, are complete, or, if the style sheet
+ has no <a href=#critical-subresources>critical subresources</a>, once the style sheet has
+ been parsed and processed, the user agent must, if the loads were
+ successful or there were none, <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-style-element>style</a></code> element,
+ or, if one of the style sheet's <a href=#critical-subresources>critical subresources</a>
+ failed to completely load for any reason (e.g. DNS error, HTTP 404
+ response, a connection being prematurely closed, unsupported
+ Content-Type), <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ <code><a href=#the-style-element>style</a></code> element. Non-network errors in processing the
style sheet or its subresources (e.g. CSS parse errors, PNG decoding
errors) are not failures for the purposes of this paragraph.</p>
@@ -12336,12 +12355,9 @@
<p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until all the attempts to obtain the style
- sheet's critical subresources, if any, are complete.</p>
+ sheet's <a href=#critical-subresources>critical subresources</a>, if any, are
+ complete.</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
</div>
<p class=note>This specification does not specify a style system,
@@ -12600,9 +12616,9 @@
<p>The <dfn id=attr-script-src title=attr-script-src><code>src</code></dfn>
attribute, if specified, gives the address of the external script
- resource to use. The value of the attribute must be a <a href=#valid-url>valid
- URL</a> identifying a script resource of the type given by the
- <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, if the
+ resource to use. The value of the attribute must be a <a href=#valid-non-empty-url>valid
+ non-empty URL</a> identifying a script resource of the type given
+ by the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, if the
attribute is present, or of the type "<code title="">text/javascript</code>", if the attribute is absent. A
resource is a script resource of a given type if that type
identifies a scripting language and the resource conforms with the
@@ -12782,11 +12798,19 @@
<li>
<p>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code>
- attribute, then the value of that attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
- if that is successful, the specified resource must then be <a href=#fetch title=fetch>fetched</a>, from the <a href=#origin>origin</a> of the
- element's <code><a href=#document>Document</a></code>.</p> <!-- not http-origin privacy
- sensitive -->
+ attribute whose value is not the empty string, then the value of
+ that attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a>
+ relative to the element, and if that is successful, the specified
+ resource must then be <a href=#fetch title=fetch>fetched</a>, from the
+ <a href=#origin>origin</a> of the element's <code><a href=#document>Document</a></code>.</p>
+ <!-- not http-origin privacy sensitive -->
+ <p>If the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute's
+ value is the empty string or if it could not be resolved, then the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ element, and abort these steps.</p>
+
<p>For historical reasons, if the <a href=#url>URL</a> is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code>
URL</a>, then the user agent must not, despite the requirements
in the definition of the <a href=#fetch title=fetch>fetching</a>
@@ -13023,7 +13047,12 @@
<li>
- <p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#script>script</a></code>
+ <p>If the script is from an external file, <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-load>load</code> at the
+ <code><a href=#script>script</a></code> element.</p>
+
+ <p>Otherwise, the script is internal; <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#script>script</a></code>
element.</p>
</li>
@@ -18475,11 +18504,9 @@
<code><a href=#the-img-element>img</a></code> element's <a href=#fallback-content>fallback content</a>.</p>
<p>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute must be
- present, and must contain a <a href=#valid-url>valid URL</a> referencing a
- non-interactive, optionally animated, image resource that is neither
- paged nor scripted. If the <i>base URI of the element</i> is the
- same as <a href="#the-document's-address">the document's address</a>, then the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute's value must not be the
- empty string.</p>
+ present, and must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>
+ referencing a non-interactive, optionally animated, image resource
+ that is neither paged nor scripted.</p>
<p class=note>Images can thus be static bitmaps (e.g. PNGs, GIFs,
JPEGs), single-page vector documents (single-page PDFs, XML files
@@ -18503,19 +18530,14 @@
<hr><p>Unless the user agent cannot support images, or its support for
images has been disabled, or the user agent only fetches elements on
demand, or the element's <code title=attr-img-src><a href=#attr-img-src>src</a></code>
- attribute has a value that is an <i>ignored self-reference</i>,
- then, when an <code><a href=#the-img-element>img</a></code> is created with a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and whenever the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set subsequently, the
+ attribute's value is the empty string, then, when an
+ <code><a href=#the-img-element>img</a></code> is created with a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and whenever the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set subsequently, the
user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value
of that attribute, relative to the element, and if that is
successful must then <a href=#fetch>fetch</a> that resource.</p> <!-- Note
how this does NOT happen when the base URL changes. --> <!--
http-origin privacy sensitive -->
- <p>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute's value is an
- <i>ignored self-reference</i> if its value is the empty string, and
- the <i>base URI of the element</i> is the same as <a href="#the-document's-address">the
- document's address</a>.</p>
-
<!-- same text in <input type=image> section and similar text elsewhere -->
<p>Fetching the image must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until the <a href=#concept-task title=concept-task>task</a>
@@ -19881,7 +19903,7 @@
<p>The <dfn id=attr-iframe-src title=attr-iframe-src><code>src</code></dfn> attribute
gives the address of a page that the <a href=#nested-browsing-context>nested browsing
context</a> is to contain. The attribute, if present, must be a
- <a href=#valid-url>valid URL</a>.</p>
+ <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <dfn id=attr-iframe-srcdoc title=attr-iframe-srcdoc><code>srcdoc</code></dfn>
attribute gives the content of the page that the <a href=#nested-browsing-context>nested
@@ -19956,11 +19978,10 @@
<dd>
- <ol><!--
- <li><p>If the value of the <code
- title="attr-iframe-src">src</code> attribute is the empty string,
- jump to the <i title="">empty</i> step below.</p></li>
---><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
+ <ol><li><p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is the empty string,
+ jump to the <i title="">empty</i> step below.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>
@@ -20635,7 +20656,7 @@
<p>The <dfn id=attr-embed-src title=attr-embed-src><code>src</code></dfn> attribute
gives the address of the resource being embedded. The attribute, if
- present, must contain a <a href=#valid-url>valid URL</a>.</p>
+ present, must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <dfn id=attr-embed-type title=attr-embed-type><code>type</code></dfn>
attribute, if present, gives the <a href=#mime-type>MIME type</a> by which the
@@ -20688,6 +20709,7 @@
<ul class=brief><li>The element is <a href=#in-a-document title="in a document">in a <code>Document</code></a>.</li>
<li>The element's <code><a href=#document>Document</a></code> is <a href=#fully-active>fully active</a>.</li>
<li>The element has either a <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute set or a <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute set (or both).</li>
+ <li>The element's <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute is either absent or its value is the empty string.</li>
<li>The element is not in a <code><a href=#document>Document</a></code> whose <a href=#browsing-context>browsing context</a> had the <a href=#sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</a> set when the <code><a href=#document>Document</a></code> was created (unless this has been overrriden as described above).</li>
<li>The element's <code><a href=#document>Document</a></code> was not parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type sniffing">sniffed type</a> as determined during <a href=#navigate title=navigate>navigation</a> is <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> (unless this has been overrriden as described above).</li>
<li>The element is not a descendant of a <a href=#media-element>media element</a>.</li>
@@ -20923,7 +20945,8 @@
<p>The <dfn id=attr-object-data title=attr-object-data><code>data</code></dfn>
attribute, if present, specifies the address of the resource. If
- present, the attribute must be a <a href=#valid-url>valid URL</a>.</p>
+ present, the attribute must be a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>.</p>
<p>The <dfn id=attr-object-type title=attr-object-type><code>type</code></dfn>
attribute, if present, specifies the type of the resource. If
@@ -21309,12 +21332,13 @@
<li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
is absent but the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
- attribute is present, <a href=#sandboxPluginObject>plugins
- aren't being sandboxed</a>, and the user agent can find a <a href=#plugin>plugin</a>
- suitable according to the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, then that <a href=#plugin>plugin</a>
- <a href=#object-plugin>should be used</a>. If no suitable <a href=#plugin>plugin</a>
- can be found, or if the <a href=#plugin>plugin</a> reports an error, jump to the next
- step (fallback).</li>
+ attribute is present, <a href=#sandboxPluginObject>plugins aren't
+ being sandboxed</a>, and the user agent can find a
+ <a href=#plugin>plugin</a> suitable according to the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, then that
+ <a href=#plugin>plugin</a> <a href=#object-plugin>should be used</a>. If
+ no suitable <a href=#plugin>plugin</a> can be found, or if the
+ <a href=#plugin>plugin</a> reports an error, jump to the next step
+ (fallback).</li>
<li><p>(Fallback.) The <code><a href=#the-object-element>object</a></code> element
<a href=#represents>represents</a> the element's children, ignoring any
@@ -21612,12 +21636,11 @@
<p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn>
attribute gives the address of an image file that the user agent can
show while no video data is available. The attribute, if present,
- must contain a <a href=#valid-url>valid URL</a>. <span class=impl>If the
- specified resource is to be used, then, when the element is created
- or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute
- is set, its value must be <a href=#resolve-a-url title="resolve a
- url">resolved</a> relative to the element, and if that is
- successful, the resulting <a href=#absolute-url>absolute URL</a> must be <a href=#fetch title=fetch>fetched</a>, from the element's
+ must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>If the specified resource is to be used, then, when the
+ element is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute is set, if its
+ value is not the empty string, its value must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
+ if that is successful, the resulting <a href=#absolute-url>absolute URL</a> must
+ be <a href=#fetch title=fetch>fetched</a>, from the element's
<code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>; this must <a href=#delay-the-load-event>delay
the load event</a> of the element's document. The <dfn id=poster-frame>poster
frame</dfn> is then the image obtained from that resource, if
@@ -22006,7 +22029,8 @@
<p>The <dfn id=attr-source-src title=attr-source-src><code>src</code></dfn> attribute
gives the address of the <a href=#media-resource>media resource</a>. The value must
- be a <a href=#valid-url>valid URL</a>. This attribute must be present.</p>
+ be a <a href=#valid-non-empty-url>valid non-empty URL</a>. This attribute must be
+ present.</p>
<p>The <dfn id=attr-source-type title=attr-source-type><code>type</code></dfn>
attribute gives the type of the <a href=#media-resource>media resource</a>, to help
@@ -22359,7 +22383,8 @@
<p>The <dfn id=attr-media-src title=attr-media-src><code>src</code></dfn> content
attribute on <a href=#media-element title="media element">media elements</a> gives
the address of the media resource (video, audio) to show. The
- attribute, if present, must contain a <a href=#valid-url>valid URL</a>.</p>
+ attribute, if present, must contain a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>.</p>
<div class=impl>
@@ -22696,7 +22721,11 @@
<p>If <var title="">mode</var> is <i title="">attribute</i>, then
run these substeps:</p>
- <ol><li><p>⌛ Let <var title="">absolute URL</var> be the
+ <ol><li><p>⌛ <i>Process candidate</i>: If the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
+
+ <li><p>⌛ Let <var title="">absolute URL</var> be the
<a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
specified by the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
attribute's value relative to the <a href=#media-element>media element</a> when
@@ -22716,9 +22745,9 @@
algorithm returns without aborting <em>this</em> one, then the
load failed.</li>
- <li><p>Reaching this step indicates that the media resource
- failed to load or that the given <a href=#url>URL</a> could not be
- <a href=#resolve-a-url title="resolve a url">resolved</a>. Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code> attribute to a new
+ <li><p><i>Failed</i>: Reaching this step indicates that the media
+ resource failed to load or that the given <a href=#url>URL</a> could
+ not be <a href=#resolve-a-url title="resolve a url">resolved</a>. Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code> attribute to a new
<code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to <code title=dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED><a href=#dom-mediaerror-media_err_src_not_supported>MEDIA_ERR_SRC_NOT_SUPPORTED</a></code>.</li>
<li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
@@ -22783,8 +22812,9 @@
</li>
- <li><p>⌛ <i>Process candidate</i>: If <var title="">candidate</var> does not have a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute, then end the
- <a href=#synchronous-section>synchronous section</a>, and jump down to the <i title="">failed</i> step below.</li>
+ <li><p>⌛ <i>Process candidate</i>: If <var title="">candidate</var> does not have a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute, or if its <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
<li><p>⌛ Let <var title="">absolute URL</var> be the
<a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
@@ -35989,17 +36019,17 @@
button</a>.</p>
<hr><p>The image is given by the <dfn id=attr-input-src title=attr-input-src><code>src</code></dfn> attribute. The <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute must be present, and
- must contain a <a href=#valid-url>valid URL</a> referencing a non-interactive,
- optionally animated, image resource that is neither paged nor
- scripted.</p>
+ must contain a <a href=#valid-non-empty-url>valid non-empty URL</a> referencing a
+ non-interactive, optionally animated, image resource that is neither
+ paged nor scripted.</p>
<div class=impl>
<p>When any of the following events occur, unless the user agent
cannot support images, or its support for images has been disabled,
- or the user agent only fetches elements on demand, the user agent
- must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of the
- <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute, relative to the
+ or the user agent only fetches elements on demand, or the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute's value is the empty
+ string, the user agent must <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute, relative to the
element, and if that is successful, must <a href=#fetch>fetch</a> the
resulting <a href=#absolute-url>absolute URL</a>:</p> <!-- Note how this does NOT
happen when the base URL changes. --> <!-- http-origin privacy
@@ -44081,10 +44111,11 @@
<p>The <dfn id=attr-command-icon title=attr-command-icon><code>icon</code></dfn>
attribute gives a picture that represents the command. If the
attribute is specified, the attribute's value must contain a
- <a href=#valid-url>valid URL</a>. <span class=impl>To obtain the
- <a href=#absolute-url>absolute URL</a> of the icon, the attribute's value must be
- <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the
- element.</span></p> <!-- this is affected by the base URL being
+ <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>To obtain the
+ <a href=#absolute-url>absolute URL</a> of the icon when the attribute's value is
+ not the empty string, the attribute's value must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element. When
+ the attribute is absent, or its value is the empty string, or <a href=#resolve-a-url title="resolve a url">resolving</a> its value fails, there is no
+ icon.</span></p> <!-- this is affected by the base URL being
changed, so users of this should cache the image once they've
fetched it once, at least until the relative url changes again -->
@@ -45353,25 +45384,22 @@
those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
<p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a
- <a href=#valid-url>valid URL</a>. This URL is the <em>destination
- resource</em> of the hyperlink.</p>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements must have
+ a value that is a <a href=#valid-url>valid URL</a>. This <a href=#url>URL</a> is
+ the <i>destination resource</i> of the hyperlink.</p>
- <div class=note>
+ <p class=note>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not
+ required; when those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
+ represent hyperlinks.</p>
- <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
- <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
- those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
- represent hyperlinks.</p>
+ <p class=note>The <code title=attr-link-href><a href=#attr-link-href>href</a></code>
+ attribute on the <code><a href=#the-link-element>link</a></code> element <em>is</em> required (and
+ has to be a <a href=#valid-non-empty-url>valid <em>non-empty</em> URL</a>), but whether
+ a <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
+ the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute of
+ that element.</p>
- <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
- <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
- <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
- the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
- of that element.</p>
-
- </div>
-
<p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
@@ -45382,9 +45410,9 @@
<p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
present, gives the URLs of the resources that are interested in
being notified if the user follows the hyperlink. The value must be
- a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
- <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
- value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
+ a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be
+ a <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>The value is
+ used by the user agent for <a href=#hyperlink-auditing>hyperlink
auditing</a>.</span></p>
<!--PING-->
@@ -55014,17 +55042,20 @@
<p>If the root element, as parsed according to the XML
specifications cited above, is found to be an <code><a href=#the-html-element-0>html</a></code>
- element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code>, then, as soon as the
- element is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted
- into the document</a>, the user agent must <a href=#resolve-a-url title="resolve a
- url">resolve</a> the value of that attribute relative to that
- element, and if that is successful, must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
- algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a> with
- any <a href=#url-fragment title=url-fragment><fragment></a> component
- removed as the manifest URL, and passing in the newly-created
- <code><a href=#document>Document</a></code>. Otherwise, if the attribute is absent or
- resolving it fails, then as soon as the root element is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into the
- document</a>, the user agent must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> whose value is not the
+ empty string, then, as soon as the element is <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into the document</a>, the user
+ agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
+ that attribute relative to that element, and if that is successful,
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with the resulting <a href=#absolute-url>absolute
+ URL</a> with any <a href=#url-fragment title=url-fragment><fragment></a> component removed as
+ the manifest URL, and passing in the newly-created
+ <code><a href=#document>Document</a></code>. Otherwise, if the attribute is absent, its
+ value is the empty string, or resolving its value fails, then as
+ soon as the root element is <a href=#insert-an-element-into-a-document title="insert an element into a
+ document">inserted into the document</a>, the user agent must run
+ the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
algorithm</a> with no manifest, and passing in the
<code><a href=#document>Document</a></code>.</p>
@@ -76270,16 +76301,17 @@
<p id=parser-appcache>If the <code><a href=#document>Document</a></code> is being
loaded as part of <a href=#navigate title=navigate>navigation</a> of a
<a href=#browsing-context>browsing context</a>, then: if the newly created element
- has a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute,
- then <a href=#resolve-a-url title="resolve a url">resolve</a> the value of that
- attribute to an <a href=#absolute-url>absolute URL</a>, relative to the newly
- created element, and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ has a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ whose value is not the empty string, then <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of that attribute to an
+ <a href=#absolute-url>absolute URL</a>, relative to the newly created element,
+ and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a> with
any <a href=#url-fragment title=url-fragment><fragment></a> component
- removed; otherwise, if there is no such attribute or resolving it
- fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application
- cache selection algorithm</a> with no manifest. The algorithm
- must be passed the <code><a href=#document>Document</a></code> object.</p>
+ removed; otherwise, if there is no such attribute, or its value is
+ the empty string, or resolving its value fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with no manifest. The algorithm must be passed
+ the <code><a href=#document>Document</a></code> object.</p>
<p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>".</p>
@@ -88546,7 +88578,7 @@
<tr><th> <code title="">data</code>
<td> <code title=attr-object-data><a href=#attr-object-data>object</a></code>
<td> Address of the resource
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">datetime</code>
<td> <code title=attr-mod-datetime><a href=#attr-mod-datetime>del</a></code>;
<code title=attr-mod-datetime><a href=#attr-mod-datetime>ins</a></code>
@@ -88656,11 +88688,14 @@
<td> <a href=#valid-floating-point-number>Valid floating point number</a>*
<tr><th> <code title="">href</code>
<td> <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>a</a></code>;
- <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>area</a></code>;
- <code title=attr-link-href><a href=#attr-link-href>link</a></code>
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>area</a></code>
<td> Address of the <a href=#hyperlink>hyperlink</a>
<td> <a href=#valid-url>Valid URL</a>
<tr><th> <code title="">href</code>
+ <td> <code title=attr-link-href><a href=#attr-link-href>link</a></code>
+ <td> Address of the <a href=#hyperlink>hyperlink</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
+ <tr><th> <code title="">href</code>
<td> <code title=attr-base-href><a href=#attr-base-href>base</a></code>
<td> <a href=#document-base-url>Document base URL</a>
<td> <a href=#valid-url>Valid URL</a>
@@ -88677,7 +88712,7 @@
<tr><th> <code title="">icon</code>
<td> <code title=attr-command-icon><a href=#attr-command-icon>command</a></code>
<td> Icon for the command
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">id</code>
<td> <a href=#the-id-attribute title=attr-id>HTML elements</a>
<td> The element's <a href=#concept-id title=concept-id>ID</a>
@@ -88739,7 +88774,7 @@
<tr><th> <code title="">manifest</code>
<td> <code title=attr-html-manifest><a href=#attr-html-manifest>html</a></code>
<td> <a href=#concept-appcache-manifest title=concept-appcache-manifest>Application cache manifest</a>
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">max</code>
<td> <code title=attr-input-max><a href=#attr-input-max>input</a></code>
<td> Maximum value
@@ -88831,7 +88866,7 @@
<td> <code title=attr-hyperlink-ping><a href=#ping>a</a></code>;
<code title=attr-hyperlink-ping><a href=#ping>area</a></code>
<td> <a href=#url title=URL>URLs</a> to ping
- <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a> consisting of <a href=#valid-url title="valid URL">valid URLs</a>
+ <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a> consisting of <a href=#valid-non-empty-url title="valid non-empty URL">valid non-empty URLs</a>
<!--PING-->
<tr><th> <code title="">placeholder</code>
<td> <code title=attr-input-placeholder><a href=#attr-input-placeholder>input</a></code>;
@@ -88841,7 +88876,7 @@
<tr><th> <code title="">poster</code>
<td> <code title=attr-video-poster><a href=#attr-video-poster>video</a></code>
<td> Poster frame to show prior to video playback
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">preload</code>
<td> <code title=attr-media-preload><a href=#attr-media-preload>audio</a></code>;
<code title=attr-media-preload><a href=#attr-media-preload>video</a></code>
@@ -88947,7 +88982,7 @@
<code title=attr-source-src><a href=#attr-source-src>source</a></code>;
<code title=attr-media-src><a href=#attr-media-src>video</a></code>
<td> Address of the resource
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">srcdoc</code>
<td> <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>iframe</a></code>
<td> A document to render in the <code><a href=#the-iframe-element>iframe</a></code>
@@ -90776,6 +90811,7 @@
Neil Soiffer,
Nicholas Shanks,
Nicholas Stimpson,
+ Nicholas Zakas,
Nicolas Gallagher,
Noah Mendelsohn,
Noah Slater,
Modified: index
===================================================================
--- index 2010-03-08 22:45:32 UTC (rev 4833)
+++ index 2010-03-09 00:35:19 UTC (rev 4834)
@@ -161,7 +161,7 @@
<header class=head id=head><p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
<hgroup><h1>HTML5 (including next generation additions still in development)</h1>
- <h2 class="no-num no-toc">Draft Standard — 8 March 2010</h2>
+ <h2 class="no-num no-toc">Draft Standard — 9 March 2010</h2>
</hgroup><p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
<p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
<!--<p class="impl"><strong>Implementors!</strong> We have a <a href="http://www.whatwg.org/mailing-list#implementors">mailing list</a> for you too!</p>-->
@@ -1906,7 +1906,15 @@
<p>The term <dfn id=html-mime-type>HTML MIME type</dfn> is used to refer to the <a href=#mime-type title="MIME type">MIME types</a> <code><a href=#text/html>text/html</a></code> and
<code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>.</p>
+ <p>A resource's <dfn id=critical-subresources>critical subresources</dfn> are those that the
+ resource needs to have available to be correctly processed. Which
+ resources are considered critical or not is defined by the
+ specification that defines the resource's format. For CSS resources,
+ only <code title="">@import</code> rules introduce <a href=#critical-subresources>critical
+ subresources</a>; other resources, e.g. fonts or backgrounds, are
+ not.</p>
+
<h4 id=xml><span class=secno>2.1.2 </span>XML</h4>
<p id=html-namespace>To ease migration from HTML to XHTML, UAs
@@ -4757,6 +4765,9 @@
<span>valid Web address</span> as defined by the Web addresses
specification. <a href=#refsWEBADDRESSES>[WEBADDRESSES]</a></p>
+ <p>A <a href=#url>URL</a> is a <dfn id=valid-non-empty-url>valid non-empty URL</dfn> if it is a
+ <a href=#valid-url>valid URL</a> but it is not the empty string.</p>
+
<p>A <a href=#url>URL</a> is an <dfn id=absolute-url>absolute URL</dfn> if it is an
<span>absolute Web address</span> as defined by the Web addresses
specification. <a href=#refsWEBADDRESSES>[WEBADDRESSES]</a></p>
@@ -10615,7 +10626,7 @@
attribute gives the address of the document's <a href=#application-cache>application
cache</a> <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>, if there is
one. If the attribute is present, the attribute's value must be a
- <a href=#valid-url>valid URL</a>.</p>
+ <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
only <a href=#concept-appcache-init title=concept-appcache-init>has an effect</a> during
@@ -10923,9 +10934,9 @@
document to other resources.</p>
<p>The destination of the link(s) is given by the <dfn id=attr-link-href title=attr-link-href><code>href</code></dfn> attribute, which must
- be present and must contain a <a href=#valid-url>valid URL</a>. <span class=impl>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code>
- attribute is absent, then the element does not define a
- link.</span></p>
+ be present and must contain a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>. <span class=impl>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute is absent, then the
+ element does not define a link.</span></p>
<p>A <code><a href=#the-link-element>link</a></code> element must have either a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute, or an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, or both.</p>
@@ -10961,52 +10972,60 @@
<p>The exact behavior for links to external resources depends on the
exact relationship, as defined for the relevant link type. Some of
the attributes control whether or not the external resource is to be
- applied (as defined below). <span class=impl>For external
- resources that are represented in the DOM (for example, style
- sheets), the DOM representation must be made available even if the
- resource is not applied. To <dfn id=concept-link-obtain title=concept-link-obtain>obtain
- the resource</dfn>, the user agent must <a href=#resolve-a-url title="resolve a
- url">resolve</a> the <a href=#url>URL</a> given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, relative to the
- element, and then <a href=#fetch>fetch</a> the resulting <a href=#absolute-url>absolute
- URL</a>. User agents may opt to only try to obtain such resources
- when they are needed, instead of pro-actively <a href=#fetch title=fetch>fetching</a> all the external resources that are
- not applied.</span></p> <!-- http-origin privacy sensitive -->
+ applied (as defined below).</p>
<div class=impl>
+ <p>For external resources that are represented in the
+ DOM (for example, style sheets), the DOM representation must be made
+ available even if the resource is not applied. To <dfn id=concept-link-obtain title=concept-link-obtain>obtain the resource</dfn>, the user
+ agent must run the following steps:</p>
+
+ <ol><li><p>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute's
+ value is the empty string, then abort these steps.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, relative to the
+ element.</li>
+
+ <li><p>If the previous step fails, then abort these steps.</li>
+
+ <li><p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute
+ URL</a>.</li> <!-- http-origin privacy sensitive -->
+
+ </ol><p>User agents may opt to only try to obtain such resources when
+ they are needed, instead of pro-actively <a href=#fetch title=fetch>fetching</a> all the external resources that are
+ not applied.</p>
+
<p>The semantics of the protocol used (e.g. HTTP) must be followed
when fetching external resources. (For example, redirects will be
followed and 404 responses will cause the external resource to not
be applied.)</p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the resource and its critical
- subresources are complete, the user agent must, if the loads were
- successful, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ <p>Once the attempts to obtain the resource and its <a href=#critical-subresources>critical
+ subresources</a> are complete, the user agent must, if the loads
+ were successful, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
event</a> named <code title=event-load>load</code> at the
<code><a href=#the-link-element>link</a></code> element, or, if the resource or one of its
- critical subresources failed to completely load for any reason
- (e.g. DNS error, HTTP 404 response, a connection being prematurely
- closed, unsupported Content-Type), <a href=#queue-a-task>queue a task</a> to
- <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-link-element>link</a></code>
+ <a href=#critical-subresources>critical subresources</a> failed to completely load for any
+ reason (e.g. DNS error, HTTP 404 response, a connection being
+ prematurely closed, unsupported Content-Type), <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-link-element>link</a></code>
element. Non-network errors in processing the resource or its
subresources (e.g. CSS parse errors, PNG decoding errors) are not
failures for the purposes of this paragraph.</p>
- <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation
- task source</a>.</p>
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</p>
<p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until all the attempts to obtain the resource and
- its critical subresources are complete. (Resources that the user
- agent has not yet attempted to obtain, e.g. because it is waiting
- for the resource to be needed, do not <a href=#delay-the-load-event>delay the load
+ its <a href=#critical-subresources>critical subresources</a> are complete. (Resources that
+ the user agent has not yet attempted to obtain, e.g. because it is
+ waiting for the resource to be needed, do not <a href=#delay-the-load-event>delay the load
event</a>.)</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
<hr><p id=linkui>Interactive user agents may provide users with a
means to <a href=#following-hyperlinks title="following hyperlinks">follow the
hyperlinks</a> created using the <code><a href=#the-link-element>link</a></code> element,
@@ -12215,18 +12234,18 @@
URL don't affect the CSS --></p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the style sheet's critical
- subresources, if any, are complete, or, if the style sheet has no
- critical subresources, once the style sheet has been parsed and
- processed, the user agent must, if the loads were successful or
- there were none, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
- event</a> named <code title=event-load>load</code> at the
- <code><a href=#the-style-element>style</a></code> element, or, if one of the style sheet's critical
- subresources failed to completely load for any reason (e.g. DNS
- error, HTTP 404 response, a connection being prematurely closed,
- unsupported Content-Type), <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
- simple event</a> named <code title=event-error>error</code> at
- the <code><a href=#the-style-element>style</a></code> element. Non-network errors in processing the
+ <p>Once the attempts to obtain the style sheet's <a href=#critical-subresources>critical
+ subresources</a>, if any, are complete, or, if the style sheet
+ has no <a href=#critical-subresources>critical subresources</a>, once the style sheet has
+ been parsed and processed, the user agent must, if the loads were
+ successful or there were none, <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-style-element>style</a></code> element,
+ or, if one of the style sheet's <a href=#critical-subresources>critical subresources</a>
+ failed to completely load for any reason (e.g. DNS error, HTTP 404
+ response, a connection being prematurely closed, unsupported
+ Content-Type), <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ <code><a href=#the-style-element>style</a></code> element. Non-network errors in processing the
style sheet or its subresources (e.g. CSS parse errors, PNG decoding
errors) are not failures for the purposes of this paragraph.</p>
@@ -12235,12 +12254,9 @@
<p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until all the attempts to obtain the style
- sheet's critical subresources, if any, are complete.</p>
+ sheet's <a href=#critical-subresources>critical subresources</a>, if any, are
+ complete.</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
</div>
<p class=note>This specification does not specify a style system,
@@ -12499,9 +12515,9 @@
<p>The <dfn id=attr-script-src title=attr-script-src><code>src</code></dfn>
attribute, if specified, gives the address of the external script
- resource to use. The value of the attribute must be a <a href=#valid-url>valid
- URL</a> identifying a script resource of the type given by the
- <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, if the
+ resource to use. The value of the attribute must be a <a href=#valid-non-empty-url>valid
+ non-empty URL</a> identifying a script resource of the type given
+ by the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, if the
attribute is present, or of the type "<code title="">text/javascript</code>", if the attribute is absent. A
resource is a script resource of a given type if that type
identifies a scripting language and the resource conforms with the
@@ -12681,11 +12697,19 @@
<li>
<p>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code>
- attribute, then the value of that attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
- if that is successful, the specified resource must then be <a href=#fetch title=fetch>fetched</a>, from the <a href=#origin>origin</a> of the
- element's <code><a href=#document>Document</a></code>.</p> <!-- not http-origin privacy
- sensitive -->
+ attribute whose value is not the empty string, then the value of
+ that attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a>
+ relative to the element, and if that is successful, the specified
+ resource must then be <a href=#fetch title=fetch>fetched</a>, from the
+ <a href=#origin>origin</a> of the element's <code><a href=#document>Document</a></code>.</p>
+ <!-- not http-origin privacy sensitive -->
+ <p>If the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute's
+ value is the empty string or if it could not be resolved, then the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ element, and abort these steps.</p>
+
<p>For historical reasons, if the <a href=#url>URL</a> is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code>
URL</a>, then the user agent must not, despite the requirements
in the definition of the <a href=#fetch title=fetch>fetching</a>
@@ -12922,7 +12946,12 @@
<li>
- <p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#script>script</a></code>
+ <p>If the script is from an external file, <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-load>load</code> at the
+ <code><a href=#script>script</a></code> element.</p>
+
+ <p>Otherwise, the script is internal; <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#script>script</a></code>
element.</p>
</li>
@@ -18374,11 +18403,9 @@
<code><a href=#the-img-element>img</a></code> element's <a href=#fallback-content>fallback content</a>.</p>
<p>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute must be
- present, and must contain a <a href=#valid-url>valid URL</a> referencing a
- non-interactive, optionally animated, image resource that is neither
- paged nor scripted. If the <i>base URI of the element</i> is the
- same as <a href="#the-document's-address">the document's address</a>, then the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute's value must not be the
- empty string.</p>
+ present, and must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>
+ referencing a non-interactive, optionally animated, image resource
+ that is neither paged nor scripted.</p>
<p class=note>Images can thus be static bitmaps (e.g. PNGs, GIFs,
JPEGs), single-page vector documents (single-page PDFs, XML files
@@ -18402,19 +18429,14 @@
<hr><p>Unless the user agent cannot support images, or its support for
images has been disabled, or the user agent only fetches elements on
demand, or the element's <code title=attr-img-src><a href=#attr-img-src>src</a></code>
- attribute has a value that is an <i>ignored self-reference</i>,
- then, when an <code><a href=#the-img-element>img</a></code> is created with a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and whenever the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set subsequently, the
+ attribute's value is the empty string, then, when an
+ <code><a href=#the-img-element>img</a></code> is created with a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and whenever the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set subsequently, the
user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value
of that attribute, relative to the element, and if that is
successful must then <a href=#fetch>fetch</a> that resource.</p> <!-- Note
how this does NOT happen when the base URL changes. --> <!--
http-origin privacy sensitive -->
- <p>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute's value is an
- <i>ignored self-reference</i> if its value is the empty string, and
- the <i>base URI of the element</i> is the same as <a href="#the-document's-address">the
- document's address</a>.</p>
-
<!-- same text in <input type=image> section and similar text elsewhere -->
<p>Fetching the image must <a href=#delay-the-load-event>delay the load event</a> of the
element's document until the <a href=#concept-task title=concept-task>task</a>
@@ -19780,7 +19802,7 @@
<p>The <dfn id=attr-iframe-src title=attr-iframe-src><code>src</code></dfn> attribute
gives the address of a page that the <a href=#nested-browsing-context>nested browsing
context</a> is to contain. The attribute, if present, must be a
- <a href=#valid-url>valid URL</a>.</p>
+ <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <dfn id=attr-iframe-srcdoc title=attr-iframe-srcdoc><code>srcdoc</code></dfn>
attribute gives the content of the page that the <a href=#nested-browsing-context>nested
@@ -19855,11 +19877,10 @@
<dd>
- <ol><!--
- <li><p>If the value of the <code
- title="attr-iframe-src">src</code> attribute is the empty string,
- jump to the <i title="">empty</i> step below.</p></li>
---><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
+ <ol><li><p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is the empty string,
+ jump to the <i title="">empty</i> step below.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>
@@ -20537,7 +20558,7 @@
<p>The <dfn id=attr-embed-src title=attr-embed-src><code>src</code></dfn> attribute
gives the address of the resource being embedded. The attribute, if
- present, must contain a <a href=#valid-url>valid URL</a>.</p>
+ present, must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
<p>The <dfn id=attr-embed-type title=attr-embed-type><code>type</code></dfn>
attribute, if present, gives the <a href=#mime-type>MIME type</a> by which the
@@ -20590,6 +20611,7 @@
<ul class=brief><li>The element is <a href=#in-a-document title="in a document">in a <code>Document</code></a>.</li>
<li>The element's <code><a href=#document>Document</a></code> is <a href=#fully-active>fully active</a>.</li>
<li>The element has either a <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute set or a <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute set (or both).</li>
+ <li>The element's <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute is either absent or its value is the empty string.</li>
<li>The element is not in a <code><a href=#document>Document</a></code> whose <a href=#browsing-context>browsing context</a> had the <a href=#sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</a> set when the <code><a href=#document>Document</a></code> was created (unless this has been overrriden as described above).</li>
<li>The element's <code><a href=#document>Document</a></code> was not parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type sniffing">sniffed type</a> as determined during <a href=#navigate title=navigate>navigation</a> is <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> (unless this has been overrriden as described above).</li>
<li>The element is not a descendant of a <a href=#media-element>media element</a>.</li>
@@ -20825,7 +20847,8 @@
<p>The <dfn id=attr-object-data title=attr-object-data><code>data</code></dfn>
attribute, if present, specifies the address of the resource. If
- present, the attribute must be a <a href=#valid-url>valid URL</a>.</p>
+ present, the attribute must be a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>.</p>
<p>The <dfn id=attr-object-type title=attr-object-type><code>type</code></dfn>
attribute, if present, specifies the type of the resource. If
@@ -21211,12 +21234,13 @@
<li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
is absent but the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
- attribute is present, <a href=#sandboxPluginObject>plugins
- aren't being sandboxed</a>, and the user agent can find a <a href=#plugin>plugin</a>
- suitable according to the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, then that <a href=#plugin>plugin</a>
- <a href=#object-plugin>should be used</a>. If no suitable <a href=#plugin>plugin</a>
- can be found, or if the <a href=#plugin>plugin</a> reports an error, jump to the next
- step (fallback).</li>
+ attribute is present, <a href=#sandboxPluginObject>plugins aren't
+ being sandboxed</a>, and the user agent can find a
+ <a href=#plugin>plugin</a> suitable according to the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, then that
+ <a href=#plugin>plugin</a> <a href=#object-plugin>should be used</a>. If
+ no suitable <a href=#plugin>plugin</a> can be found, or if the
+ <a href=#plugin>plugin</a> reports an error, jump to the next step
+ (fallback).</li>
<li><p>(Fallback.) The <code><a href=#the-object-element>object</a></code> element
<a href=#represents>represents</a> the element's children, ignoring any
@@ -21514,12 +21538,11 @@
<p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn>
attribute gives the address of an image file that the user agent can
show while no video data is available. The attribute, if present,
- must contain a <a href=#valid-url>valid URL</a>. <span class=impl>If the
- specified resource is to be used, then, when the element is created
- or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute
- is set, its value must be <a href=#resolve-a-url title="resolve a
- url">resolved</a> relative to the element, and if that is
- successful, the resulting <a href=#absolute-url>absolute URL</a> must be <a href=#fetch title=fetch>fetched</a>, from the element's
+ must contain a <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>If the specified resource is to be used, then, when the
+ element is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute is set, if its
+ value is not the empty string, its value must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
+ if that is successful, the resulting <a href=#absolute-url>absolute URL</a> must
+ be <a href=#fetch title=fetch>fetched</a>, from the element's
<code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>; this must <a href=#delay-the-load-event>delay
the load event</a> of the element's document. The <dfn id=poster-frame>poster
frame</dfn> is then the image obtained from that resource, if
@@ -21908,7 +21931,8 @@
<p>The <dfn id=attr-source-src title=attr-source-src><code>src</code></dfn> attribute
gives the address of the <a href=#media-resource>media resource</a>. The value must
- be a <a href=#valid-url>valid URL</a>. This attribute must be present.</p>
+ be a <a href=#valid-non-empty-url>valid non-empty URL</a>. This attribute must be
+ present.</p>
<p>The <dfn id=attr-source-type title=attr-source-type><code>type</code></dfn>
attribute gives the type of the <a href=#media-resource>media resource</a>, to help
@@ -22261,7 +22285,8 @@
<p>The <dfn id=attr-media-src title=attr-media-src><code>src</code></dfn> content
attribute on <a href=#media-element title="media element">media elements</a> gives
the address of the media resource (video, audio) to show. The
- attribute, if present, must contain a <a href=#valid-url>valid URL</a>.</p>
+ attribute, if present, must contain a <a href=#valid-non-empty-url>valid non-empty
+ URL</a>.</p>
<div class=impl>
@@ -22598,7 +22623,11 @@
<p>If <var title="">mode</var> is <i title="">attribute</i>, then
run these substeps:</p>
- <ol><li><p>⌛ Let <var title="">absolute URL</var> be the
+ <ol><li><p>⌛ <i>Process candidate</i>: If the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
+
+ <li><p>⌛ Let <var title="">absolute URL</var> be the
<a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
specified by the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
attribute's value relative to the <a href=#media-element>media element</a> when
@@ -22618,9 +22647,9 @@
algorithm returns without aborting <em>this</em> one, then the
load failed.</li>
- <li><p>Reaching this step indicates that the media resource
- failed to load or that the given <a href=#url>URL</a> could not be
- <a href=#resolve-a-url title="resolve a url">resolved</a>. Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code> attribute to a new
+ <li><p><i>Failed</i>: Reaching this step indicates that the media
+ resource failed to load or that the given <a href=#url>URL</a> could
+ not be <a href=#resolve-a-url title="resolve a url">resolved</a>. Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code> attribute to a new
<code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to <code title=dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED><a href=#dom-mediaerror-media_err_src_not_supported>MEDIA_ERR_SRC_NOT_SUPPORTED</a></code>.</li>
<li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
@@ -22685,8 +22714,9 @@
</li>
- <li><p>⌛ <i>Process candidate</i>: If <var title="">candidate</var> does not have a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute, then end the
- <a href=#synchronous-section>synchronous section</a>, and jump down to the <i title="">failed</i> step below.</li>
+ <li><p>⌛ <i>Process candidate</i>: If <var title="">candidate</var> does not have a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute, or if its <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
<li><p>⌛ Let <var title="">absolute URL</var> be the
<a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
@@ -26748,11 +26778,11 @@
where some glyphs like आ are anchored, the middle is half-way
between the top of the em square and the bottom of the em square,
the alphabetic baseline is where characters like Á, ÿ,
- f, and Ω are anchored, the ideographic baseline is
+ " src=images/baselines.png>x0066;, and Ω are anchored, the ideographic baseline is
where glyphs like 私 and 達 are anchored, and the bottom
of the em square is roughly at the bottom of the glyphs in a
font. The top and bottom of the bounding box can be far from these
- baselines, due to glyphs extending far outside the em square." src=images/baselines.png></p>
+ baselines, due to glyphs extending far outside the em square."></p>
<p>The keywords map to these alignment points as follows:</p>
@@ -35891,17 +35921,17 @@
button</a>.</p>
<hr><p>The image is given by the <dfn id=attr-input-src title=attr-input-src><code>src</code></dfn> attribute. The <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute must be present, and
- must contain a <a href=#valid-url>valid URL</a> referencing a non-interactive,
- optionally animated, image resource that is neither paged nor
- scripted.</p>
+ must contain a <a href=#valid-non-empty-url>valid non-empty URL</a> referencing a
+ non-interactive, optionally animated, image resource that is neither
+ paged nor scripted.</p>
<div class=impl>
<p>When any of the following events occur, unless the user agent
cannot support images, or its support for images has been disabled,
- or the user agent only fetches elements on demand, the user agent
- must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of the
- <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute, relative to the
+ or the user agent only fetches elements on demand, or the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute's value is the empty
+ string, the user agent must <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute, relative to the
element, and if that is successful, must <a href=#fetch>fetch</a> the
resulting <a href=#absolute-url>absolute URL</a>:</p> <!-- Note how this does NOT
happen when the base URL changes. --> <!-- http-origin privacy
@@ -43983,10 +44013,11 @@
<p>The <dfn id=attr-command-icon title=attr-command-icon><code>icon</code></dfn>
attribute gives a picture that represents the command. If the
attribute is specified, the attribute's value must contain a
- <a href=#valid-url>valid URL</a>. <span class=impl>To obtain the
- <a href=#absolute-url>absolute URL</a> of the icon, the attribute's value must be
- <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the
- element.</span></p> <!-- this is affected by the base URL being
+ <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>To obtain the
+ <a href=#absolute-url>absolute URL</a> of the icon when the attribute's value is
+ not the empty string, the attribute's value must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element. When
+ the attribute is absent, or its value is the empty string, or <a href=#resolve-a-url title="resolve a url">resolving</a> its value fails, there is no
+ icon.</span></p> <!-- this is affected by the base URL being
changed, so users of this should cache the image once they've
fetched it once, at least until the relative url changes again -->
@@ -45255,25 +45286,22 @@
those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
<p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a
- <a href=#valid-url>valid URL</a>. This URL is the <em>destination
- resource</em> of the hyperlink.</p>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements must have
+ a value that is a <a href=#valid-url>valid URL</a>. This <a href=#url>URL</a> is
+ the <i>destination resource</i> of the hyperlink.</p>
- <div class=note>
+ <p class=note>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not
+ required; when those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
+ represent hyperlinks.</p>
- <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
- <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
- those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
- represent hyperlinks.</p>
+ <p class=note>The <code title=attr-link-href><a href=#attr-link-href>href</a></code>
+ attribute on the <code><a href=#the-link-element>link</a></code> element <em>is</em> required (and
+ has to be a <a href=#valid-non-empty-url>valid <em>non-empty</em> URL</a>), but whether
+ a <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
+ the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute of
+ that element.</p>
- <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
- <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
- <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
- the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
- of that element.</p>
-
- </div>
-
<p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
@@ -45284,9 +45312,9 @@
<p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
present, gives the URLs of the resources that are interested in
being notified if the user follows the hyperlink. The value must be
- a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
- <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
- value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
+ a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be
+ a <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>The value is
+ used by the user agent for <a href=#hyperlink-auditing>hyperlink
auditing</a>.</span></p>
<!--PING-->
@@ -54916,17 +54944,20 @@
<p>If the root element, as parsed according to the XML
specifications cited above, is found to be an <code><a href=#the-html-element-0>html</a></code>
- element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code>, then, as soon as the
- element is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted
- into the document</a>, the user agent must <a href=#resolve-a-url title="resolve a
- url">resolve</a> the value of that attribute relative to that
- element, and if that is successful, must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
- algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a> with
- any <a href=#url-fragment title=url-fragment><fragment></a> component
- removed as the manifest URL, and passing in the newly-created
- <code><a href=#document>Document</a></code>. Otherwise, if the attribute is absent or
- resolving it fails, then as soon as the root element is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into the
- document</a>, the user agent must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> whose value is not the
+ empty string, then, as soon as the element is <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into the document</a>, the user
+ agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
+ that attribute relative to that element, and if that is successful,
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with the resulting <a href=#absolute-url>absolute
+ URL</a> with any <a href=#url-fragment title=url-fragment><fragment></a> component removed as
+ the manifest URL, and passing in the newly-created
+ <code><a href=#document>Document</a></code>. Otherwise, if the attribute is absent, its
+ value is the empty string, or resolving its value fails, then as
+ soon as the root element is <a href=#insert-an-element-into-a-document title="insert an element into a
+ document">inserted into the document</a>, the user agent must run
+ the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
algorithm</a> with no manifest, and passing in the
<code><a href=#document>Document</a></code>.</p>
@@ -69681,16 +69712,17 @@
<p id=parser-appcache>If the <code><a href=#document>Document</a></code> is being
loaded as part of <a href=#navigate title=navigate>navigation</a> of a
<a href=#browsing-context>browsing context</a>, then: if the newly created element
- has a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute,
- then <a href=#resolve-a-url title="resolve a url">resolve</a> the value of that
- attribute to an <a href=#absolute-url>absolute URL</a>, relative to the newly
- created element, and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ has a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ whose value is not the empty string, then <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of that attribute to an
+ <a href=#absolute-url>absolute URL</a>, relative to the newly created element,
+ and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a> with
any <a href=#url-fragment title=url-fragment><fragment></a> component
- removed; otherwise, if there is no such attribute or resolving it
- fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application
- cache selection algorithm</a> with no manifest. The algorithm
- must be passed the <code><a href=#document>Document</a></code> object.</p>
+ removed; otherwise, if there is no such attribute, or its value is
+ the empty string, or resolving its value fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with no manifest. The algorithm must be passed
+ the <code><a href=#document>Document</a></code> object.</p>
<p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>".</p>
@@ -81957,7 +81989,7 @@
<tr><th> <code title="">data</code>
<td> <code title=attr-object-data><a href=#attr-object-data>object</a></code>
<td> Address of the resource
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">datetime</code>
<td> <code title=attr-mod-datetime><a href=#attr-mod-datetime>del</a></code>;
<code title=attr-mod-datetime><a href=#attr-mod-datetime>ins</a></code>
@@ -82067,11 +82099,14 @@
<td> <a href=#valid-floating-point-number>Valid floating point number</a>*
<tr><th> <code title="">href</code>
<td> <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>a</a></code>;
- <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>area</a></code>;
- <code title=attr-link-href><a href=#attr-link-href>link</a></code>
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>area</a></code>
<td> Address of the <a href=#hyperlink>hyperlink</a>
<td> <a href=#valid-url>Valid URL</a>
<tr><th> <code title="">href</code>
+ <td> <code title=attr-link-href><a href=#attr-link-href>link</a></code>
+ <td> Address of the <a href=#hyperlink>hyperlink</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
+ <tr><th> <code title="">href</code>
<td> <code title=attr-base-href><a href=#attr-base-href>base</a></code>
<td> <a href=#document-base-url>Document base URL</a>
<td> <a href=#valid-url>Valid URL</a>
@@ -82088,7 +82123,7 @@
<tr><th> <code title="">icon</code>
<td> <code title=attr-command-icon><a href=#attr-command-icon>command</a></code>
<td> Icon for the command
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">id</code>
<td> <a href=#the-id-attribute title=attr-id>HTML elements</a>
<td> The element's <a href=#concept-id title=concept-id>ID</a>
@@ -82150,7 +82185,7 @@
<tr><th> <code title="">manifest</code>
<td> <code title=attr-html-manifest><a href=#attr-html-manifest>html</a></code>
<td> <a href=#concept-appcache-manifest title=concept-appcache-manifest>Application cache manifest</a>
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">max</code>
<td> <code title=attr-input-max><a href=#attr-input-max>input</a></code>
<td> Maximum value
@@ -82242,7 +82277,7 @@
<td> <code title=attr-hyperlink-ping><a href=#ping>a</a></code>;
<code title=attr-hyperlink-ping><a href=#ping>area</a></code>
<td> <a href=#url title=URL>URLs</a> to ping
- <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a> consisting of <a href=#valid-url title="valid URL">valid URLs</a>
+ <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a> consisting of <a href=#valid-non-empty-url title="valid non-empty URL">valid non-empty URLs</a>
<!--PING-->
<tr><th> <code title="">placeholder</code>
<td> <code title=attr-input-placeholder><a href=#attr-input-placeholder>input</a></code>;
@@ -82252,7 +82287,7 @@
<tr><th> <code title="">poster</code>
<td> <code title=attr-video-poster><a href=#attr-video-poster>video</a></code>
<td> Poster frame to show prior to video playback
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">preload</code>
<td> <code title=attr-media-preload><a href=#attr-media-preload>audio</a></code>;
<code title=attr-media-preload><a href=#attr-media-preload>video</a></code>
@@ -82358,7 +82393,7 @@
<code title=attr-source-src><a href=#attr-source-src>source</a></code>;
<code title=attr-media-src><a href=#attr-media-src>video</a></code>
<td> Address of the resource
- <td> <a href=#valid-url>Valid URL</a>
+ <td> <a href=#valid-non-empty-url>Valid non-empty URL</a>
<tr><th> <code title="">srcdoc</code>
<td> <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>iframe</a></code>
<td> A document to render in the <code><a href=#the-iframe-element>iframe</a></code>
@@ -84342,6 +84377,7 @@
Neil Soiffer,
Nicholas Shanks,
Nicholas Stimpson,
+ Nicholas Zakas,
Nicolas Gallagher,
Noah Mendelsohn,
Noah Slater,
Modified: source
===================================================================
--- source 2010-03-08 22:45:32 UTC (rev 4833)
+++ source 2010-03-09 00:35:19 UTC (rev 4834)
@@ -871,7 +871,15 @@
title="MIME type">MIME types</span> <code>text/html</code> and
<code>text/html-sandboxed</code>.</p>
+ <p>A resource's <dfn>critical subresources</dfn> are those that the
+ resource needs to have available to be correctly processed. Which
+ resources are considered critical or not is defined by the
+ specification that defines the resource's format. For CSS resources,
+ only <code title="">@import</code> rules introduce <span>critical
+ subresources</span>; other resources, e.g. fonts or backgrounds, are
+ not.</p>
+
<h4>XML</h4>
<p id="html-namespace">To ease migration from HTML to XHTML, UAs
@@ -4311,6 +4319,9 @@
<span>valid Web address</span> as defined by the Web addresses
specification. <a href="#refsWEBADDRESSES">[WEBADDRESSES]</a></p>
+ <p>A <span>URL</span> is a <dfn>valid non-empty URL</dfn> if it is a
+ <span>valid URL</span> but it is not the empty string.</p>
+
<p>A <span>URL</span> is an <dfn>absolute URL</dfn> if it is an
<span>absolute Web address</span> as defined by the Web addresses
specification. <a href="#refsWEBADDRESSES">[WEBADDRESSES]</a></p>
@@ -11044,7 +11055,7 @@
cache</span> <span
title="concept-appcache-manifest">manifest</span>, if there is
one. If the attribute is present, the attribute's value must be a
- <span>valid URL</span>.</p>
+ <span>valid non-empty URL</span>.</p>
<p>The <code title="attr-html-manifest">manifest</code> attribute
only <span title="concept-appcache-init">has an effect</span> during
@@ -11387,10 +11398,10 @@
<p>The destination of the link(s) is given by the <dfn
title="attr-link-href"><code>href</code></dfn> attribute, which must
- be present and must contain a <span>valid URL</span>. <span
- class="impl">If the <code title="attr-link-href">href</code>
- attribute is absent, then the element does not define a
- link.</span></p>
+ be present and must contain a <span>valid non-empty
+ URL</span>. <span class="impl">If the <code
+ title="attr-link-href">href</code> attribute is absent, then the
+ element does not define a link.</span></p>
<!--END w3c-html-->
<p>A <code>link</code> element must have either a <code
@@ -11434,57 +11445,69 @@
<p>The exact behavior for links to external resources depends on the
exact relationship, as defined for the relevant link type. Some of
the attributes control whether or not the external resource is to be
- applied (as defined below). <span class="impl">For external
- resources that are represented in the DOM (for example, style
- sheets), the DOM representation must be made available even if the
- resource is not applied. To <dfn title="concept-link-obtain">obtain
- the resource</dfn>, the user agent must <span title="resolve a
- url">resolve</span> the <span>URL</span> given by the <code
- title="attr-link-href">href</code> attribute, relative to the
- element, and then <span>fetch</span> the resulting <span>absolute
- URL</span>. User agents may opt to only try to obtain such resources
- when they are needed, instead of pro-actively <span
- title="fetch">fetching</span> all the external resources that are
- not applied.</span></p> <!-- http-origin privacy sensitive -->
+ applied (as defined below).</p>
<div class="impl">
+ <p>For external resources that are represented in the
+ DOM (for example, style sheets), the DOM representation must be made
+ available even if the resource is not applied. To <dfn
+ title="concept-link-obtain">obtain the resource</dfn>, the user
+ agent must run the following steps:</p>
+
+ <ol>
+
+ <li><p>If the <code title="attr-link-href">href</code> attribute's
+ value is the empty string, then abort these steps.</p></li>
+
+ <li><p><span title="resolve a url">Resolve</span> the
+ <span>URL</span> given by the <code
+ title="attr-link-href">href</code> attribute, relative to the
+ element.</li>
+
+ <li><p>If the previous step fails, then abort these steps.</p></li>
+
+ <li><p><span>Fetch</span> the resulting <span>absolute
+ URL</span>.</p></li> <!-- http-origin privacy sensitive -->
+
+ </ol>
+
+ <p>User agents may opt to only try to obtain such resources when
+ they are needed, instead of pro-actively <span
+ title="fetch">fetching</span> all the external resources that are
+ not applied.</p>
+
<p>The semantics of the protocol used (e.g. HTTP) must be followed
when fetching external resources. (For example, redirects will be
followed and 404 responses will cause the external resource to not
be applied.)</p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the resource and its critical
- subresources are complete, the user agent must, if the loads were
- successful, <span>queue a task</span> to <span>fire a simple
+ <p>Once the attempts to obtain the resource and its <span>critical
+ subresources</span> are complete, the user agent must, if the loads
+ were successful, <span>queue a task</span> to <span>fire a simple
event</span> named <code title="event-load">load</code> at the
<code>link</code> element, or, if the resource or one of its
- critical subresources failed to completely load for any reason
- (e.g. DNS error, HTTP 404 response, a connection being prematurely
- closed, unsupported Content-Type), <span>queue a task</span> to
- <span>fire a simple event</span> named <code
+ <span>critical subresources</span> failed to completely load for any
+ reason (e.g. DNS error, HTTP 404 response, a connection being
+ prematurely closed, unsupported Content-Type), <span>queue a
+ task</span> to <span>fire a simple event</span> named <code
title="event-error">error</code> at the <code>link</code>
element. Non-network errors in processing the resource or its
subresources (e.g. CSS parse errors, PNG decoding errors) are not
failures for the purposes of this paragraph.</p>
<p>The <span>task source</span> for these <span
- title="concept-task">tasks</span> is the <span>DOM manipulation
- task source</span>.</p>
+ title="concept-task">tasks</span> is the <span>DOM manipulation task
+ source</span>.</p>
<p>The element must <span>delay the load event</span> of the
element's document until all the attempts to obtain the resource and
- its critical subresources are complete. (Resources that the user
- agent has not yet attempted to obtain, e.g. because it is waiting
- for the resource to be needed, do not <span>delay the load
+ its <span>critical subresources</span> are complete. (Resources that
+ the user agent has not yet attempted to obtain, e.g. because it is
+ waiting for the resource to be needed, do not <span>delay the load
event</span>.)</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code
- title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
<hr>
<p id="linkui">Interactive user agents may provide users with a
@@ -12882,18 +12905,19 @@
URL don't affect the CSS --></p>
<!-- the next few paragraph are similar to text in the <style> section -->
- <p>Once the attempts to obtain the style sheet's critical
- subresources, if any, are complete, or, if the style sheet has no
- critical subresources, once the style sheet has been parsed and
- processed, the user agent must, if the loads were successful or
- there were none, <span>queue a task</span> to <span>fire a simple
- event</span> named <code title="event-load">load</code> at the
- <code>style</code> element, or, if one of the style sheet's critical
- subresources failed to completely load for any reason (e.g. DNS
- error, HTTP 404 response, a connection being prematurely closed,
- unsupported Content-Type), <span>queue a task</span> to <span>fire a
- simple event</span> named <code title="event-error">error</code> at
- the <code>style</code> element. Non-network errors in processing the
+ <p>Once the attempts to obtain the style sheet's <span>critical
+ subresources</span>, if any, are complete, or, if the style sheet
+ has no <span>critical subresources</span>, once the style sheet has
+ been parsed and processed, the user agent must, if the loads were
+ successful or there were none, <span>queue a task</span> to
+ <span>fire a simple event</span> named <code
+ title="event-load">load</code> at the <code>style</code> element,
+ or, if one of the style sheet's <span>critical subresources</span>
+ failed to completely load for any reason (e.g. DNS error, HTTP 404
+ response, a connection being prematurely closed, unsupported
+ Content-Type), <span>queue a task</span> to <span>fire a simple
+ event</span> named <code title="event-error">error</code> at the
+ <code>style</code> element. Non-network errors in processing the
style sheet or its subresources (e.g. CSS parse errors, PNG decoding
errors) are not failures for the purposes of this paragraph.</p>
@@ -12903,13 +12927,9 @@
<p>The element must <span>delay the load event</span> of the
element's document until all the attempts to obtain the style
- sheet's critical subresources, if any, are complete.</p>
+ sheet's <span>critical subresources</span>, if any, are
+ complete.</p>
- <p>Which resources are considered critical or not is defined by the
- relevant specification. For CSS resources, only <code
- title="">@import</code> rules introduce critical subresources; other
- resources, e.g. fonts or backgrounds, are not.</p>
-
</div>
<p class="note">This specification does not specify a style system,
@@ -13199,8 +13219,8 @@
<p>The <dfn title="attr-script-src"><code>src</code></dfn>
attribute, if specified, gives the address of the external script
resource to use. The value of the attribute must be a <span>valid
- URL</span> identifying a script resource of the type given by the
- <code title="attr-script-type">type</code> attribute, if the
+ non-empty URL</span> identifying a script resource of the type given
+ by the <code title="attr-script-type">type</code> attribute, if the
attribute is present, or of the type "<code
title="">text/javascript</code>", if the attribute is absent. A
resource is a script resource of a given type if that type
@@ -13421,13 +13441,19 @@
<li>
<p>If the element has a <code title="attr-script-src">src</code>
- attribute, then the value of that attribute must be <span
- title="resolve a url">resolved</span> relative to the element, and
- if that is successful, the specified resource must then be <span
- title="fetch">fetched</span>, from the <span>origin</span> of the
- element's <code>Document</code>.</p> <!-- not http-origin privacy
- sensitive -->
+ attribute whose value is not the empty string, then the value of
+ that attribute must be <span title="resolve a url">resolved</span>
+ relative to the element, and if that is successful, the specified
+ resource must then be <span title="fetch">fetched</span>, from the
+ <span>origin</span> of the element's <code>Document</code>.</p>
+ <!-- not http-origin privacy sensitive -->
+ <p>If the <code title="attr-script-src">src</code> attribute's
+ value is the empty string or if it could not be resolved, then the
+ user agent must <span>queue a task</span> to <span>fire a simple
+ event</span> named <code title="event-error">error</code> at the
+ element, and abort these steps.</p>
+
<p>For historical reasons, if the <span>URL</span> is a <span
title="javascript protocol"><code title="">javascript:</code>
URL</span>, then the user agent must not, despite the requirements
@@ -13696,7 +13722,12 @@
<li>
- <p><span>Fire a simple event</span> named <code
+ <p>If the script is from an external file, <span>fire a simple
+ event</span> named <code title="event-load">load</code> at the
+ <code>script</code> element.</p>
+
+ <p>Otherwise, the script is internal; <span>queue a task</span>
+ to <span>fire a simple event</span> named <code
title="event-load">load</code> at the <code>script</code>
element.</p>
@@ -19594,12 +19625,9 @@
<code>img</code> element's <span>fallback content</span>.</p>
<p>The <code title="attr-img-src">src</code> attribute must be
- present, and must contain a <span>valid URL</span> referencing a
- non-interactive, optionally animated, image resource that is neither
- paged nor scripted. If the <i>base URI of the element</i> is the
- same as <span>the document's address</span>, then the <code
- title="attr-img-src">src</code> attribute's value must not be the
- empty string.</p>
+ present, and must contain a <span>valid non-empty URL</span>
+ referencing a non-interactive, optionally animated, image resource
+ that is neither paged nor scripted.</p>
<p class="note">Images can thus be static bitmaps (e.g. PNGs, GIFs,
JPEGs), single-page vector documents (single-page PDFs, XML files
@@ -19625,8 +19653,8 @@
<p>Unless the user agent cannot support images, or its support for
images has been disabled, or the user agent only fetches elements on
demand, or the element's <code title="attr-img-src">src</code>
- attribute has a value that is an <i>ignored self-reference</i>,
- then, when an <code>img</code> is created with a <code
+ attribute's value is the empty string, then, when an
+ <code>img</code> is created with a <code
title="attr-img-src">src</code> attribute, and whenever the <code
title="attr-img-src">src</code> attribute is set subsequently, the
user agent must <span title="resolve a url">resolve</span> the value
@@ -19635,11 +19663,6 @@
how this does NOT happen when the base URL changes. --> <!--
http-origin privacy sensitive -->
- <p>The <code title="attr-img-src">src</code> attribute's value is an
- <i>ignored self-reference</i> if its value is the empty string, and
- the <i>base URI of the element</i> is the same as <span>the
- document's address</span>.</p>
-
<!-- same text in <input type=image> section and similar text elsewhere -->
<p>Fetching the image must <span>delay the load event</span> of the
element's document until the <span title="concept-task">task</span>
@@ -21114,7 +21137,7 @@
<p>The <dfn title="attr-iframe-src"><code>src</code></dfn> attribute
gives the address of a page that the <span>nested browsing
context</span> is to contain. The attribute, if present, must be a
- <span>valid URL</span>.</p>
+ <span>valid non-empty URL</span>.</p>
<p>The <dfn title="attr-iframe-srcdoc"><code>srcdoc</code></dfn>
attribute gives the content of the page that the <span>nested
@@ -21202,11 +21225,9 @@
<ol>
-<!--
<li><p>If the value of the <code
title="attr-iframe-src">src</code> attribute is the empty string,
jump to the <i title="">empty</i> step below.</p></li>
--->
<li><p><span title="resolve a url">Resolve</span> the value of
the <code title="attr-iframe-src">src</code> attribute, relative
@@ -21969,7 +21990,7 @@
<p>The <dfn title="attr-embed-src"><code>src</code></dfn> attribute
gives the address of the resource being embedded. The attribute, if
- present, must contain a <span>valid URL</span>.</p>
+ present, must contain a <span>valid non-empty URL</span>.</p>
<p>The <dfn title="attr-embed-type"><code>type</code></dfn>
attribute, if present, gives the <span>MIME type</span> by which the
@@ -22034,6 +22055,7 @@
<li>The element is <span title="in a document">in a <code>Document</code></span>.</li>
<li>The element's <code>Document</code> is <span>fully active</span>.</li>
<li>The element has either a <code title="attr-embed-src">src</code> attribute set or a <code title="attr-embed-type">type</code> attribute set (or both).</li>
+ <li>The element's <code title="attr-embed-src">src</code> attribute is either absent or its value is the empty string.</li>
<li>The element is not in a <code>Document</code> whose <span>browsing context</span> had the <span>sandboxed plugins browsing context flag</span> set when the <code>Document</code> was created (unless this has been overrriden as described above).</li>
<li>The element's <code>Document</code> was not parsed from a resource whose <span title="Content-Type sniffing">sniffed type</span> as determined during <span title="navigate">navigation</span> is <code>text/html-sandboxed</code> (unless this has been overrriden as described above).</li>
<li>The element is not a descendant of a <span>media element</span>.</li>
@@ -22299,7 +22321,8 @@
<p>The <dfn title="attr-object-data"><code>data</code></dfn>
attribute, if present, specifies the address of the resource. If
- present, the attribute must be a <span>valid URL</span>.</p>
+ present, the attribute must be a <span>valid non-empty
+ URL</span>.</p>
<p>The <dfn title="attr-object-type"><code>type</code></dfn>
attribute, if present, specifies the type of the resource. If
@@ -22725,13 +22748,14 @@
<li><p>If the <code title="attr-object-data">data</code> attribute
is absent but the <code title="attr-object-type">type</code>
- attribute is present, <a href="#sandboxPluginObject">plugins
- aren't being sandboxed</a>, and the user agent can find a <span>plugin</span>
- suitable according to the value of the <code
- title="attr-object-type">type</code> attribute, then that <span>plugin</span>
- <a href="#object-plugin">should be used</a>. If no suitable <span>plugin</span>
- can be found, or if the <span>plugin</span> reports an error, jump to the next
- step (fallback).</p></li>
+ attribute is present, <a href="#sandboxPluginObject">plugins aren't
+ being sandboxed</a>, and the user agent can find a
+ <span>plugin</span> suitable according to the value of the <code
+ title="attr-object-type">type</code> attribute, then that
+ <span>plugin</span> <a href="#object-plugin">should be used</a>. If
+ no suitable <span>plugin</span> can be found, or if the
+ <span>plugin</span> reports an error, jump to the next step
+ (fallback).</p></li>
<li><p>(Fallback.) The <code>object</code> element
<span>represents</span> the element's children, ignoring any
@@ -23061,13 +23085,14 @@
<p>The <dfn title="attr-video-poster"><code>poster</code></dfn>
attribute gives the address of an image file that the user agent can
show while no video data is available. The attribute, if present,
- must contain a <span>valid URL</span>. <span class="impl">If the
- specified resource is to be used, then, when the element is created
- or when the <code title="attr-video-poster">poster</code> attribute
- is set, its value must be <span title="resolve a
- url">resolved</span> relative to the element, and if that is
- successful, the resulting <span>absolute URL</span> must be <span
- title="fetch">fetched</span>, from the element's
+ must contain a <span>valid non-empty URL</span>. <span
+ class="impl">If the specified resource is to be used, then, when the
+ element is created or when the <code
+ title="attr-video-poster">poster</code> attribute is set, if its
+ value is not the empty string, its value must be <span
+ title="resolve a url">resolved</span> relative to the element, and
+ if that is successful, the resulting <span>absolute URL</span> must
+ be <span title="fetch">fetched</span>, from the element's
<code>Document</code>'s <span>origin</span>; this must <span>delay
the load event</span> of the element's document. The <dfn>poster
frame</dfn> is then the image obtained from that resource, if
@@ -23508,7 +23533,8 @@
<p>The <dfn title="attr-source-src"><code>src</code></dfn> attribute
gives the address of the <span>media resource</span>. The value must
- be a <span>valid URL</span>. This attribute must be present.</p>
+ be a <span>valid non-empty URL</span>. This attribute must be
+ present.</p>
<p>The <dfn title="attr-source-type"><code>type</code></dfn>
attribute gives the type of the <span>media resource</span>, to help
@@ -23898,7 +23924,8 @@
<p>The <dfn title="attr-media-src"><code>src</code></dfn> content
attribute on <span title="media element">media elements</span> gives
the address of the media resource (video, audio) to show. The
- attribute, if present, must contain a <span>valid URL</span>.</p>
+ attribute, if present, must contain a <span>valid non-empty
+ URL</span>.</p>
<div class="impl">
@@ -24306,6 +24333,11 @@
<ol>
+ <li><p>⌛ <i>Process candidate</i>: If the <code
+ title="attr-media-src">src</code> attribute's value is the empty
+ string, then end the <span>synchronous section</span>, and jump
+ down to the <i title="">failed</i> step below.</p></li>
+
<li><p>⌛ Let <var title="">absolute URL</var> be the
<span>absolute URL</span> that would have resulted from <span
title="resolve a url">resolving</span> the <span>URL</span>
@@ -24330,9 +24362,9 @@
algorithm returns without aborting <em>this</em> one, then the
load failed.</p></li>
- <li><p>Reaching this step indicates that the media resource
- failed to load or that the given <span>URL</span> could not be
- <span title="resolve a url">resolved</span>. Set the <code
+ <li><p><i>Failed</i>: Reaching this step indicates that the media
+ resource failed to load or that the given <span>URL</span> could
+ not be <span title="resolve a url">resolved</span>. Set the <code
title="dom-media-error">error</code> attribute to a new
<code>MediaError</code> object whose <code
title="dom-MediaError-code">code</code> attribute is set to <code
@@ -24417,9 +24449,10 @@
<li><p>⌛ <i>Process candidate</i>: If <var
title="">candidate</var> does not have a <code
- title="attr-source-src">src</code> attribute, then end the
- <span>synchronous section</span>, and jump down to the <i
- title="">failed</i> step below.</p></li>
+ title="attr-source-src">src</code> attribute, or if its <code
+ title="attr-source-src">src</code> attribute's value is the empty
+ string, then end the <span>synchronous section</span>, and jump
+ down to the <i title="">failed</i> step below.</p></li>
<li><p>⌛ Let <var title="">absolute URL</var> be the
<span>absolute URL</span> that would have resulted from <span
@@ -39840,17 +39873,19 @@
<p>The image is given by the <dfn
title="attr-input-src"><code>src</code></dfn> attribute. The <code
title="attr-input-src">src</code> attribute must be present, and
- must contain a <span>valid URL</span> referencing a non-interactive,
- optionally animated, image resource that is neither paged nor
- scripted.</p>
+ must contain a <span>valid non-empty URL</span> referencing a
+ non-interactive, optionally animated, image resource that is neither
+ paged nor scripted.</p>
<div class="impl">
<p>When any of the following events occur, unless the user agent
cannot support images, or its support for images has been disabled,
- or the user agent only fetches elements on demand, the user agent
- must <span title="resolve a url">resolve</span> the value of the
- <code title="attr-input-src">src</code> attribute, relative to the
+ or the user agent only fetches elements on demand, or the <code
+ title="attr-input-src">src</code> attribute's value is the empty
+ string, the user agent must <span title="resolve a
+ url">resolve</span> the value of the <code
+ title="attr-input-src">src</code> attribute, relative to the
element, and if that is successful, must <span>fetch</span> the
resulting <span>absolute URL</span>:</p> <!-- Note how this does NOT
happen when the base URL changes. --> <!-- http-origin privacy
@@ -48973,10 +49008,13 @@
<p>The <dfn title="attr-command-icon"><code>icon</code></dfn>
attribute gives a picture that represents the command. If the
attribute is specified, the attribute's value must contain a
- <span>valid URL</span>. <span class="impl">To obtain the
- <span>absolute URL</span> of the icon, the attribute's value must be
- <span title="resolve a url">resolved</span> relative to the
- element.</span></p> <!-- this is affected by the base URL being
+ <span>valid non-empty URL</span>. <span class="impl">To obtain the
+ <span>absolute URL</span> of the icon when the attribute's value is
+ not the empty string, the attribute's value must be <span
+ title="resolve a url">resolved</span> relative to the element. When
+ the attribute is absent, or its value is the empty string, or <span
+ title="resolve a url">resolving</span> its value fails, there is no
+ icon.</span></p> <!-- this is affected by the base URL being
changed, so users of this should cache the image once they've
fetched it once, at least until the relative url changes again -->
@@ -50439,26 +50477,23 @@
title="hyperlink">hyperlinks</dfn>.</p>
<p>The <dfn title="attr-hyperlink-href"><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a
- <span>valid URL</span>. This URL is the <em>destination
- resource</em> of the hyperlink.</p>
+ attribute on <code>a</code> and <code>area</code> elements must have
+ a value that is a <span>valid URL</span>. This <span>URL</span> is
+ the <i>destination resource</i> of the hyperlink.</p>
- <div class="note">
+ <p class="note">The <code title="attr-hyperlink-href">href</code>
+ attribute on <code>a</code> and <code>area</code> elements is not
+ required; when those elements do not have <code
+ title="attr-hyperlink-href">href</code> attributes they do not
+ represent hyperlinks.</p>
- <p>The <code title="attr-hyperlink-href">href</code> attribute on
- <code>a</code> and <code>area</code> elements is not required; when
- those elements do not have <code
- title="attr-hyperlink-href">href</code> attributes they do not
- represent hyperlinks.</p>
+ <p class="note">The <code title="attr-link-href">href</code>
+ attribute on the <code>link</code> element <em>is</em> required (and
+ has to be a <span>valid <em>non-empty</em> URL</span>), but whether
+ a <code>link</code> element represents a hyperlink or not depends on
+ the value of the <code title="attr-link-rel">rel</code> attribute of
+ that element.</p>
- <p>The <code title="attr-link-href">href</code> attribute on the
- <code>link</code> element <em>is</em> required, but whether a
- <code>link</code> element represents a hyperlink or not depends on
- the value of the <code title="attr-link-rel">rel</code> attribute
- of that element.</p>
-
- </div>
-
<p>The <dfn title="attr-hyperlink-target"><code>target</code></dfn>
attribute, if present, must be a <span>valid browsing context name
or keyword</span>. It gives the name of the <span>browsing
@@ -50470,9 +50505,9 @@
title="attr-hyperlink-ping"><code>ping</code></dfn> attribute, if
present, gives the URLs of the resources that are interested in
being notified if the user follows the hyperlink. The value must be
- a <span>set of space-separated tokens</span>, each of which must be a
- <span title="valid URL">valid URL</span>. <span class="impl">The
- value is used by the user agent for <span>hyperlink
+ a <span>set of space-separated tokens</span>, each of which must be
+ a <span>valid non-empty URL</span>. <span class="impl">The value is
+ used by the user agent for <span>hyperlink
auditing</span>.</span></p>
<!--START w3c-html--><!--PING-->
@@ -61974,20 +62009,21 @@
<p>If the root element, as parsed according to the XML
specifications cited above, is found to be an <code>html</code>
element with an attribute <code
- title="attr-html-manifest">manifest</code>, then, as soon as the
- element is <span title="insert an element into a document">inserted
- into the document</span>, the user agent must <span title="resolve a
- url">resolve</span> the value of that attribute relative to that
- element, and if that is successful, must run the <span
- title="concept-appcache-init">application cache selection
- algorithm</span> with the resulting <span>absolute URL</span> with
- any <span title="url-fragment"><fragment></span> component
- removed as the manifest URL, and passing in the newly-created
- <code>Document</code>. Otherwise, if the attribute is absent or
- resolving it fails, then as soon as the root element is <span
- title="insert an element into a document">inserted into the
- document</span>, the user agent must run the <span
- title="concept-appcache-init">application cache selection
+ title="attr-html-manifest">manifest</code> whose value is not the
+ empty string, then, as soon as the element is <span title="insert an
+ element into a document">inserted into the document</span>, the user
+ agent must <span title="resolve a url">resolve</span> the value of
+ that attribute relative to that element, and if that is successful,
+ must run the <span title="concept-appcache-init">application cache
+ selection algorithm</span> with the resulting <span>absolute
+ URL</span> with any <span
+ title="url-fragment"><fragment></span> component removed as
+ the manifest URL, and passing in the newly-created
+ <code>Document</code>. Otherwise, if the attribute is absent, its
+ value is the empty string, or resolving its value fails, then as
+ soon as the root element is <span title="insert an element into a
+ document">inserted into the document</span>, the user agent must run
+ the <span title="concept-appcache-init">application cache selection
algorithm</span> with no manifest, and passing in the
<code>Document</code>.</p>
@@ -87121,17 +87157,19 @@
<p id="parser-appcache">If the <code>Document</code> is being
loaded as part of <span title="navigate">navigation</span> of a
<span>browsing context</span>, then: if the newly created element
- has a <code title="attr-html-manifest">manifest</code> attribute,
- then <span title="resolve a url">resolve</span> the value of that
- attribute to an <span>absolute URL</span>, relative to the newly
- created element, and if that is successful, run the <span
+ has a <code title="attr-html-manifest">manifest</code> attribute
+ whose value is not the empty string, then <span title="resolve a
+ url">resolve</span> the value of that attribute to an
+ <span>absolute URL</span>, relative to the newly created element,
+ and if that is successful, run the <span
title="concept-appcache-init">application cache selection
algorithm</span> with the resulting <span>absolute URL</span> with
any <span title="url-fragment"><fragment></span> component
- removed; otherwise, if there is no such attribute or resolving it
- fails, run the <span title="concept-appcache-init">application
- cache selection algorithm</span> with no manifest. The algorithm
- must be passed the <code>Document</code> object.</p>
+ removed; otherwise, if there is no such attribute, or its value is
+ the empty string, or resolving its value fails, run the <span
+ title="concept-appcache-init">application cache selection
+ algorithm</span> with no manifest. The algorithm must be passed
+ the <code>Document</code> object.</p>
<p>Switch the <span>insertion mode</span> to "<span
title="insertion mode: before head">before head</span>".</p>
@@ -98798,7 +98836,7 @@
<th> <code title="">data</code>
<td> <code title="attr-object-data">object</code>
<td> Address of the resource
- <td> <span>Valid URL</span>
+ <td> <span>Valid non-empty URL</span>
<tr>
<th> <code title="">datetime</code>
<td> <code title="attr-mod-datetime">del</code>;
@@ -98928,12 +98966,16 @@
<tr>
<th> <code title="">href</code>
<td> <code title="attr-hyperlink-href">a</code>;
- <code title="attr-hyperlink-href">area</code>;
- <code title="attr-link-href">link</code>
+ <code title="attr-hyperlink-href">area</code>
<td> Address of the <span>hyperlink</span>
<td> <span>Valid URL</span>
<tr>
<th> <code title="">href</code>
+ <td> <code title="attr-link-href">link</code>
+ <td> Address of the <span>hyperlink</span>
+ <td> <span>Valid non-empty URL</span>
+ <tr>
+ <th> <code title="">href</code>
<td> <code title="attr-base-href">base</code>
<td> <span>Document base URL</span>
<td> <span>Valid URL</span>
@@ -98953,7 +98995,7 @@
<th> <code title="">icon</code>
<td> <code title="attr-command-icon">command</code>
<td> Icon for the command
- <td> <span>Valid URL</span>
+ <td> <span>Valid non-empty URL</span>
<tr>
<th> <code title="">id</code>
<td> <span title="attr-id">HTML elements</span>
@@ -99029,7 +99071,7 @@
<th> <code title="">manifest</code>
<td> <code title="attr-html-manifest">html</code>
<td> <span title="concept-appcache-manifest">Application cache manifest</span>
- <td> <span>Valid URL</span>
+ <td> <span>Valid non-empty URL</span>
<tr>
<th> <code title="">max</code>
<td> <code title="attr-input-max">input</code>
@@ -99140,7 +99182,7 @@
<td> <code title="attr-hyperlink-ping">a</code>;
<code title="attr-hyperlink-ping">area</code>
<td> <span title="URL">URLs</span> to ping
- <td> <span>Set of space-separated tokens</span> consisting of <span title="valid URL">valid URLs</span>
+ <td> <span>Set of space-separated tokens</span> consisting of <span title="valid non-empty URL">valid non-empty URLs</span>
<!--START w3c-html--><!--PING-->
<tr>
<th> <code title="">placeholder</code>
@@ -99152,7 +99194,7 @@
<th> <code title="">poster</code>
<td> <code title="attr-video-poster">video</code>
<td> Poster frame to show prior to video playback
- <td> <span>Valid URL</span>
+ <td> <span>Valid non-empty URL</span>
<tr>
<th> <code title="">preload</code>
<td> <code title="attr-media-preload">audio</code>;
@@ -99278,7 +99320,7 @@
<code title="attr-source-src">source</code>;
<code title="attr-media-src">video</code>
<td> Address of the resource
- <td> <span>Valid URL</span>
+ <td> <span>Valid non-empty URL</span>
<tr>
<th> <code title="">srcdoc</code>
<td> <code title="attr-iframe-srcdoc">iframe</code>
@@ -101681,6 +101723,7 @@
Neil Soiffer,
Nicholas Shanks,
Nicholas Stimpson,
+ Nicholas Zakas,
Nicolas Gallagher,
Noah Mendelsohn,
Noah Slater,
More information about the Commit-Watchers
mailing list