[html5] r1033 - /
whatwg at whatwg.org
whatwg at whatwg.org
Tue Sep 25 01:53:22 PDT 2007
Author: ianh
Date: 2007-09-25 01:53:21 -0700 (Tue, 25 Sep 2007)
New Revision: 1033
Modified:
index
source
Log:
[e] (0) Moving the Links section down.
Modified: index
===================================================================
--- index 2007-09-25 08:37:51 UTC (rev 1032)
+++ index 2007-09-25 08:53:21 UTC (rev 1033)
@@ -1003,291 +1003,291 @@
</span>Implementation notes for session history</a>
</ul>
- <li><a href="#links"><span class=secno>4.4. </span>Links</a>
- <ul class=toc>
- <li><a href="#hyperlink"><span class=secno>4.4.1. </span>Hyperlink
- elements</a>
-
- <li><a href="#following"><span class=secno>4.4.2. </span>Following
- hyperlinks</a>
- <ul class=toc>
- <li><a href="#hyperlink0"><span class=secno>4.4.2.1.
- </span>Hyperlink auditing</a>
- </ul>
-
- <li><a href="#linkTypes"><span class=secno>4.4.3. </span>Link
- types</a>
- <ul class=toc>
- <li><a href="#link-type"><span class=secno>4.4.3.1. </span>Link type
- "<code>alternate</code>"</a>
-
- <li><a href="#link-type0"><span class=secno>4.4.3.2. </span>Link
- type "<code>archives</code>"</a>
-
- <li><a href="#link-type1"><span class=secno>4.4.3.3. </span>Link
- type "<code>author</code>"</a>
-
- <li><a href="#link-type2"><span class=secno>4.4.3.4. </span>Link
- type "<code>bookmark</code>"</a>
-
- <li><a href="#link-type3"><span class=secno>4.4.3.5. </span>Link
- type "<code>contact</code>"</a>
-
- <li><a href="#link-type4"><span class=secno>4.4.3.6. </span>Link
- type "<code>external</code>"</a>
-
- <li><a href="#link-type5"><span class=secno>4.4.3.7. </span>Link
- type "<code>feed</code>"</a>
-
- <li><a href="#link-type6"><span class=secno>4.4.3.8. </span>Link
- type "<code>help</code>"</a>
-
- <li><a href="#link-type7"><span class=secno>4.4.3.9. </span>Link
- type "<code>icon</code>"</a>
-
- <li><a href="#link-type8"><span class=secno>4.4.3.10. </span>Link
- type "<code>license</code>"</a>
-
- <li><a href="#link-type9"><span class=secno>4.4.3.11. </span>Link
- type "<code>nofollow</code>"</a>
-
- <li><a href="#link-type10"><span class=secno>4.4.3.12. </span>Link
- type "<code>pingback</code>"</a>
-
- <li><a href="#link-type11"><span class=secno>4.4.3.13. </span>Link
- type "<code>prefetch</code>"</a>
-
- <li><a href="#link-type12"><span class=secno>4.4.3.14. </span>Link
- type "<code>search</code>"</a>
-
- <li><a href="#link-type13"><span class=secno>4.4.3.15. </span>Link
- type "<code>stylesheet</code>"</a>
-
- <li><a href="#link-type14"><span class=secno>4.4.3.16. </span>Link
- type "<code>sidebar</code>"</a>
-
- <li><a href="#link-type15"><span class=secno>4.4.3.17. </span>Link
- type "<code>tag</code>"</a>
-
- <li><a href="#hierarchical"><span class=secno>4.4.3.18.
- </span>Hierarchical link types</a>
- <ul class=toc>
- <li><a href="#link-type16"><span class=secno>4.4.3.18.1.
- </span>Link type "<code>first</code>"</a>
-
- <li><a href="#link-type17"><span class=secno>4.4.3.18.2.
- </span>Link type "<code>index</code>"</a>
-
- <li><a href="#link-type18"><span class=secno>4.4.3.18.3.
- </span>Link type "<code>last</code>"</a>
-
- <li><a href="#link-type19"><span class=secno>4.4.3.18.4.
- </span>Link type "<code>next</code>"</a>
-
- <li><a href="#link-type20"><span class=secno>4.4.3.18.5.
- </span>Link type "<code>prev</code>"</a>
-
- <li><a href="#link-type21"><span class=secno>4.4.3.18.6.
- </span>Link type "<code>up</code>"</a>
- </ul>
-
- <li><a href="#other0"><span class=secno>4.4.3.19. </span>Other link
- types</a>
- </ul>
- </ul>
-
- <li><a href="#interfaces"><span class=secno>4.5. </span>Interfaces for
- URI manipulation</a>
-
- <li><a href="#navigating"><span class=secno>4.6. </span>Navigating
+ <li><a href="#navigating"><span class=secno>4.4. </span>Navigating
across documents</a>
<ul class=toc>
- <li><a href="#read-html"><span class=secno>4.6.1. </span>Page load
+ <li><a href="#read-html"><span class=secno>4.4.1. </span>Page load
processing model for HTML files</a>
- <li><a href="#read-xml"><span class=secno>4.6.2. </span>Page load
+ <li><a href="#read-xml"><span class=secno>4.4.2. </span>Page load
processing model for XML files</a>
- <li><a href="#read-text"><span class=secno>4.6.3. </span>Page load
+ <li><a href="#read-text"><span class=secno>4.4.3. </span>Page load
processing model for text files</a>
- <li><a href="#read-image"><span class=secno>4.6.4. </span>Page load
+ <li><a href="#read-image"><span class=secno>4.4.4. </span>Page load
processing model for images</a>
- <li><a href="#read-plugin"><span class=secno>4.6.5. </span>Page load
+ <li><a href="#read-plugin"><span class=secno>4.4.5. </span>Page load
processing model for content that uses plugins</a>
- <li><a href="#non-DOM-inline-content"><span class=secno>4.6.6.
+ <li><a href="#non-DOM-inline-content"><span class=secno>4.4.6.
</span>Page load processing model for inline content that doesn't
have a DOM</a>
- <li><a href="#scroll-to-fragid"><span class=secno>4.6.7.
+ <li><a href="#scroll-to-fragid"><span class=secno>4.4.7.
</span>Scrolling to a fragment identifier</a>
</ul>
- <li><a href="#content-type-sniffing"><span class=secno>4.7.
+ <li><a href="#content-type-sniffing"><span class=secno>4.5.
</span>Determining the type of a new resource in a browsing context</a>
<ul class=toc>
- <li><a href="#content-type0"><span class=secno>4.7.1.
+ <li><a href="#content-type0"><span class=secno>4.5.1.
</span>Content-Type sniffing: text or binary</a>
- <li><a href="#content-type1"><span class=secno>4.7.2.
+ <li><a href="#content-type1"><span class=secno>4.5.2.
</span>Content-Type sniffing: unknown type</a>
- <li><a href="#content-type2"><span class=secno>4.7.3.
+ <li><a href="#content-type2"><span class=secno>4.5.3.
</span>Content-Type sniffing: image</a>
- <li><a href="#content-type3"><span class=secno>4.7.4.
+ <li><a href="#content-type3"><span class=secno>4.5.4.
</span>Content-Type sniffing: feed or HTML</a>
- <li><a href="#content-type"><span class=secno>4.7.5.
+ <li><a href="#content-type"><span class=secno>4.5.5.
</span>Content-Type metadata</a>
</ul>
- <li><a href="#user-prompts"><span class=secno>4.8. </span>User
+ <li><a href="#user-prompts"><span class=secno>4.6. </span>User
prompts</a>
- <li><a href="#scripting"><span class=secno>4.9. </span>Scripting</a>
+ <li><a href="#scripting"><span class=secno>4.7. </span>Scripting</a>
<ul class=toc>
- <li><a href="#running"><span class=secno>4.9.1. </span>Running
+ <li><a href="#running"><span class=secno>4.7.1. </span>Running
executable code</a>
- <li><a href="#origin"><span class=secno>4.9.2. </span>Origin</a>
+ <li><a href="#origin"><span class=secno>4.7.2. </span>Origin</a>
- <li><a href="#security3"><span class=secno>4.9.3. </span>Security
+ <li><a href="#security3"><span class=secno>4.7.3. </span>Security
exceptions</a>
- <li><a href="#javascript-protocol"><span class=secno>4.9.4. </span>The
+ <li><a href="#javascript-protocol"><span class=secno>4.7.4. </span>The
<code title="">javascript:</code> protocol</a>
- <li><a href="#events"><span class=secno>4.9.5. </span>Events</a>
+ <li><a href="#events"><span class=secno>4.7.5. </span>Events</a>
<ul class=toc>
- <li><a href="#event-handler-attributes"><span class=secno>4.9.5.1.
+ <li><a href="#event-handler-attributes"><span class=secno>4.7.5.1.
</span>Event handler attributes</a>
- <li><a href="#event"><span class=secno>4.9.5.2. </span>Event
+ <li><a href="#event"><span class=secno>4.7.5.2. </span>Event
firing</a>
- <li><a href="#events0"><span class=secno>4.9.5.3. </span>Events and
+ <li><a href="#events0"><span class=secno>4.7.5.3. </span>Events and
the <code>Window</code> object</a>
- <li><a href="#runtime-script-errors"><span class=secno>4.9.5.4.
+ <li><a href="#runtime-script-errors"><span class=secno>4.7.5.4.
</span>Runtime script errors</a>
</ul>
</ul>
- <li><a href="#browser"><span class=secno>4.10. </span>Browser state</a>
+ <li><a href="#browser"><span class=secno>4.8. </span>Browser state</a>
<ul class=toc>
- <li><a href="#offline"><span class=secno>4.10.1. </span>Offline Web
+ <li><a href="#offline"><span class=secno>4.8.1. </span>Offline Web
applications</a>
- <li><a href="#custom-handlers"><span class=secno>4.10.2. </span>Custom
+ <li><a href="#custom-handlers"><span class=secno>4.8.2. </span>Custom
protocol and content handlers</a>
<ul class=toc>
- <li><a href="#security4"><span class=secno>4.10.2.1. </span>Security
+ <li><a href="#security4"><span class=secno>4.8.2.1. </span>Security
and privacy</a>
- <li><a href="#sample-handler-impl"><span class=secno>4.10.2.2.
+ <li><a href="#sample-handler-impl"><span class=secno>4.8.2.2.
</span>Sample user interface</a>
</ul>
</ul>
- <li><a href="#storage"><span class=secno>4.11. </span>Client-side
- session and persistent storage of name/value pairs</a>
+ <li><a href="#storage"><span class=secno>4.9. </span>Client-side session
+ and persistent storage of name/value pairs</a>
<ul class=toc>
- <li><a href="#introduction1"><span class=secno>4.11.1.
+ <li><a href="#introduction1"><span class=secno>4.9.1.
</span>Introduction</a>
- <li><a href="#the-storage"><span class=secno>4.11.2. </span>The
+ <li><a href="#the-storage"><span class=secno>4.9.2. </span>The
<code>Storage</code> interface</a>
- <li><a href="#the-storageitem"><span class=secno>4.11.3. </span>The
+ <li><a href="#the-storageitem"><span class=secno>4.9.3. </span>The
<code>StorageItem</code> interface</a>
- <li><a href="#the-sessionstorage"><span class=secno>4.11.4. </span>The
+ <li><a href="#the-sessionstorage"><span class=secno>4.9.4. </span>The
<code title=dom-sessionStorage>sessionStorage</code> attribute</a>
- <li><a href="#the-globalstorage"><span class=secno>4.11.5. </span>The
+ <li><a href="#the-globalstorage"><span class=secno>4.9.5. </span>The
<code title=dom-globalStorage>globalStorage</code> attribute</a>
- <li><a href="#the-storage0"><span class=secno>4.11.6. </span>The <code
+ <li><a href="#the-storage0"><span class=secno>4.9.6. </span>The <code
title=event-storage>storage</code> event</a>
- <li><a href="#miscellaneous0"><span class=secno>4.11.7.
+ <li><a href="#miscellaneous0"><span class=secno>4.9.7.
</span>Miscellaneous implementation requirements for storage
areas</a>
<ul class=toc>
- <li><a href="#disk-space"><span class=secno>4.11.7.1. </span>Disk
+ <li><a href="#disk-space"><span class=secno>4.9.7.1. </span>Disk
space</a>
- <li><a href="#threads0"><span class=secno>4.11.7.2.
+ <li><a href="#threads0"><span class=secno>4.9.7.2.
</span>Threads</a>
</ul>
- <li><a href="#security5"><span class=secno>4.11.8. </span>Security and
+ <li><a href="#security5"><span class=secno>4.9.8. </span>Security and
privacy</a>
<ul class=toc>
- <li><a href="#user-tracking"><span class=secno>4.11.8.1. </span>User
+ <li><a href="#user-tracking"><span class=secno>4.9.8.1. </span>User
tracking</a>
- <li><a href="#cookie"><span class=secno>4.11.8.2. </span>Cookie
+ <li><a href="#cookie"><span class=secno>4.9.8.2. </span>Cookie
resurrection</a>
- <li><a href="#integrity"><span class=secno>4.11.8.3.
- </span>Integrity of "public" storage areas</a>
+ <li><a href="#integrity"><span class=secno>4.9.8.3. </span>Integrity
+ of "public" storage areas</a>
- <li><a href="#cross-protocol"><span class=secno>4.11.8.4.
+ <li><a href="#cross-protocol"><span class=secno>4.9.8.4.
</span>Cross-protocol and cross-port attacks</a>
- <li><a href="#dns-spoofing"><span class=secno>4.11.8.5. </span>DNS
+ <li><a href="#dns-spoofing"><span class=secno>4.9.8.5. </span>DNS
spoofing attacks</a>
- <li><a href="#cross-directory"><span class=secno>4.11.8.6.
+ <li><a href="#cross-directory"><span class=secno>4.9.8.6.
</span>Cross-directory attacks</a>
- <li><a href="#public"><span class=secno>4.11.8.7. </span>Public
+ <li><a href="#public"><span class=secno>4.9.8.7. </span>Public
storage areas corresponding to hosts</a>
- <li><a href="#storage0"><span class=secno>4.11.8.8. </span>Storage
+ <li><a href="#storage0"><span class=secno>4.9.8.8. </span>Storage
areas in the face of untrusted higher-level domains that do not
correspond to public storage areas</a>
- <li><a href="#storage1"><span class=secno>4.11.8.9. </span>Storage
+ <li><a href="#storage1"><span class=secno>4.9.8.9. </span>Storage
areas in the face of untrusted subdomains</a>
- <li><a href="#implementation"><span class=secno>4.11.8.10.
+ <li><a href="#implementation"><span class=secno>4.9.8.10.
</span>Implementation risks</a>
</ul>
</ul>
- <li><a href="#sql"><span class=secno>4.12. </span>Client-side database
+ <li><a href="#sql"><span class=secno>4.10. </span>Client-side database
storage</a>
<ul class=toc>
- <li><a href="#introduction2"><span class=secno>4.12.1.
+ <li><a href="#introduction2"><span class=secno>4.10.1.
</span>Introduction</a>
- <li><a href="#databases"><span class=secno>4.12.2.
+ <li><a href="#databases"><span class=secno>4.10.2.
</span>Databases</a>
- <li><a href="#executing"><span class=secno>4.12.3. </span>Executing
+ <li><a href="#executing"><span class=secno>4.10.3. </span>Executing
SQL statements</a>
- <li><a href="#database"><span class=secno>4.12.4. </span>Database
+ <li><a href="#database"><span class=secno>4.10.4. </span>Database
query results</a>
- <li><a href="#privacy"><span class=secno>4.12.5. </span>Privacy</a>
+ <li><a href="#privacy"><span class=secno>4.10.5. </span>Privacy</a>
- <li><a href="#security6"><span class=secno>4.12.6. </span>Security</a>
+ <li><a href="#security6"><span class=secno>4.10.6. </span>Security</a>
<ul class=toc>
- <li><a href="#user-agents"><span class=secno>4.12.6.1. </span>User
+ <li><a href="#user-agents"><span class=secno>4.10.6.1. </span>User
agents</a>
- <li><a href="#sql-injection"><span class=secno>4.12.6.2. </span>SQL
+ <li><a href="#sql-injection"><span class=secno>4.10.6.2. </span>SQL
injection</a>
</ul>
</ul>
+
+ <li><a href="#links"><span class=secno>4.11. </span>Links</a>
+ <ul class=toc>
+ <li><a href="#hyperlink"><span class=secno>4.11.1. </span>Hyperlink
+ elements</a>
+
+ <li><a href="#following"><span class=secno>4.11.2. </span>Following
+ hyperlinks</a>
+ <ul class=toc>
+ <li><a href="#hyperlink0"><span class=secno>4.11.2.1.
+ </span>Hyperlink auditing</a>
+ </ul>
+
+ <li><a href="#linkTypes"><span class=secno>4.11.3. </span>Link
+ types</a>
+ <ul class=toc>
+ <li><a href="#link-type"><span class=secno>4.11.3.1. </span>Link
+ type "<code>alternate</code>"</a>
+
+ <li><a href="#link-type0"><span class=secno>4.11.3.2. </span>Link
+ type "<code>archives</code>"</a>
+
+ <li><a href="#link-type1"><span class=secno>4.11.3.3. </span>Link
+ type "<code>author</code>"</a>
+
+ <li><a href="#link-type2"><span class=secno>4.11.3.4. </span>Link
+ type "<code>bookmark</code>"</a>
+
+ <li><a href="#link-type3"><span class=secno>4.11.3.5. </span>Link
+ type "<code>contact</code>"</a>
+
+ <li><a href="#link-type4"><span class=secno>4.11.3.6. </span>Link
+ type "<code>external</code>"</a>
+
+ <li><a href="#link-type5"><span class=secno>4.11.3.7. </span>Link
+ type "<code>feed</code>"</a>
+
+ <li><a href="#link-type6"><span class=secno>4.11.3.8. </span>Link
+ type "<code>help</code>"</a>
+
+ <li><a href="#link-type7"><span class=secno>4.11.3.9. </span>Link
+ type "<code>icon</code>"</a>
+
+ <li><a href="#link-type8"><span class=secno>4.11.3.10. </span>Link
+ type "<code>license</code>"</a>
+
+ <li><a href="#link-type9"><span class=secno>4.11.3.11. </span>Link
+ type "<code>nofollow</code>"</a>
+
+ <li><a href="#link-type10"><span class=secno>4.11.3.12. </span>Link
+ type "<code>pingback</code>"</a>
+
+ <li><a href="#link-type11"><span class=secno>4.11.3.13. </span>Link
+ type "<code>prefetch</code>"</a>
+
+ <li><a href="#link-type12"><span class=secno>4.11.3.14. </span>Link
+ type "<code>search</code>"</a>
+
+ <li><a href="#link-type13"><span class=secno>4.11.3.15. </span>Link
+ type "<code>stylesheet</code>"</a>
+
+ <li><a href="#link-type14"><span class=secno>4.11.3.16. </span>Link
+ type "<code>sidebar</code>"</a>
+
+ <li><a href="#link-type15"><span class=secno>4.11.3.17. </span>Link
+ type "<code>tag</code>"</a>
+
+ <li><a href="#hierarchical"><span class=secno>4.11.3.18.
+ </span>Hierarchical link types</a>
+ <ul class=toc>
+ <li><a href="#link-type16"><span class=secno>4.11.3.18.1.
+ </span>Link type "<code>first</code>"</a>
+
+ <li><a href="#link-type17"><span class=secno>4.11.3.18.2.
+ </span>Link type "<code>index</code>"</a>
+
+ <li><a href="#link-type18"><span class=secno>4.11.3.18.3.
+ </span>Link type "<code>last</code>"</a>
+
+ <li><a href="#link-type19"><span class=secno>4.11.3.18.4.
+ </span>Link type "<code>next</code>"</a>
+
+ <li><a href="#link-type20"><span class=secno>4.11.3.18.5.
+ </span>Link type "<code>prev</code>"</a>
+
+ <li><a href="#link-type21"><span class=secno>4.11.3.18.6.
+ </span>Link type "<code>up</code>"</a>
+ </ul>
+
+ <li><a href="#other0"><span class=secno>4.11.3.19. </span>Other link
+ types</a>
+ </ul>
+ </ul>
+
+ <li><a href="#interfaces"><span class=secno>4.12. </span>Interfaces for
+ URI manipulation</a>
</ul>
<li><a href="#editing"><span class=secno>5. </span>Editing</a>
@@ -25178,1388 +25178,8 @@
that are invoked on a timer, or from event handlers that do not represent
a clear user action, or that are invoked in rapid succession.
- <h3 id=links><span class=secno>4.4. </span>Links</h3>
+ <h3 id=navigating><span class=secno>4.4. </span>Navigating across documents</h3>
- <h4 id=hyperlink><span class=secno>4.4.1. </span>Hyperlink elements</h4>
-
- <p>The <code><a href="#a">a</a></code>, <code><a
- href="#area">area</a></code>, and <code><a href="#link">link</a></code>
- elements can, in certain situations described in the definitions of those
- elements, represent <dfn id=hyperlinks title=hyperlink>hyperlinks</dfn>.
-
- <p>The <dfn id=href6 title=attr-hyperlink-href><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a URI (or IRI).
- This URI is the <em>destination resource</em> of the hyperlink.
-
- <div class=note>
- <p>The <code title=attr-hyperlink-href><a href="#href6">href</a></code>
- attribute on <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements is not required; when those
- elements do not have <code title=attr-hyperlink-href><a
- href="#href6">href</a></code> attributes they do not represent
- hyperlinks.</p>
-
- <p>The <code title=attr-link-href><a href="#href1">href</a></code>
- attribute on the <code><a href="#link">link</a></code> element
- <em>is</em> required, but whether a <code><a href="#link">link</a></code>
- element represents a hyperlink or not depends on the value of the <code
- title=attr-link-rel><a href="#rel">rel</a></code> attribute of that
- element.</p>
- </div>
-
- <p>The <dfn id=target3
- title=attr-hyperlink-target><code>target</code></dfn> attribute, if
- present, must be a <a href="#valid8">valid browsing context name</a>. User
- agents use this name when <a href="#following0">following hyperlinks</a>.
-
- <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn>
- attribute, if present, gives the URIs of the resources that are interested
- in being notified if the user follows the hyperlink. The value must be a
- space separated list of one or more URIs (or IRIs). The value is used by
- the user agent when <a href="#following0">following hyperlinks</a>.
-
- <p>For <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements that represent hyperlinks, the
- relationship between the document containing the hyperlink and the
- destination resource indicated by the hyperlink is given by the value of
- the element's <dfn id=rel3 title=attr-hyperlink-rel><code>rel</code></dfn>
- attribute, which must be an <a href="#unordered">unordered set of
- space-separated tokens</a>. The <a href="#linkTypes">allowed values and
- their meanings</a> are defined below. The <code
- title=attr-hyperlink-rel><a href="#rel3">rel</a></code> attribute has no
- default value. If the attribute is omitted or if none of the values in the
- attribute are recognised by the UA, then the document has no particular
- relationship with the destination resource other than there being a
- hyperlink between the two.
-
- <p>The <dfn id=media12 title=attr-hyperlink-media><code>media</code></dfn>
- attribute describes for which media the target document was designed. It
- is purely advisory. The value must be a valid media query. <a
- href="#refsMQ">[MQ]</a> The default, if the <code
- title=attr-hyperlink-media><a href="#media12">media</a></code> attribute
- is omitted or has an invalid value, is <code>all</code>.
-
- <p>The <dfn id=hreflang3
- title=attr-hyperlink-hreflang><code>hreflang</code></dfn> attribute on
- hyperlink elements, if present, gives the language of the linked resource.
- It is purely advisory. The value must be a valid RFC 3066 language code.
- <a href="#refsRFC3066">[RFC3066]</a> User agents must not consider this
- attribute authoritative — upon fetching the resource, user agents
- must only use language information associated with the resource to
- determine its language, not metadata included in the link to the resource.
-
- <p>The <dfn id=type17 title=attr-hyperlink-type><code>type</code></dfn>
- attribute, if present, gives the MIME type of the linked resource. It is
- purely advisory. The value must be a valid MIME type, optionally with
- parameters. <a href="#refsRFC2046">[RFC2046]</a> User agents must not
- consider the <code title=attr-hyperlink-type><a
- href="#type17">type</a></code> attribute authoritative — upon
- fetching the resource, user agents must not use metadata included in the
- link to the resource to determine its type.
-
- <h4 id=following><span class=secno>4.4.2. </span><dfn
- id=following0>Following hyperlinks</dfn></h4>
-
- <p>When a user <em>follows a hyperlink</em>, the user agent must <a
- href="#navigate">navigate</a> a <a href="#browsing0">browsing context</a>
- to the URI of the hyperlink.
-
- <p>The URI of the hyperlink is URI given by resolving the the <code
- title=attr-hyperlink-href><a href="#href6">href</a></code> attribute of
- that hyperlink relative to the hyperlink's element. In the case of
- server-side image maps, the URI of the hyperlink must further have its
- <var><a href="#hyperlink2">hyperlink suffix</a></var> appended to it.
-
- <p>If the user indicated a specific browsing context when following the
- hyperlink, or if the user agent is configured to follow hyperlinks by
- navigating a particular browsing context, then that must be the browsing
- context that is navigated.
-
- <p>Otherwise, if the hyperlink element is an <code><a
- href="#a">a</a></code> or <code><a href="#area">area</a></code> element
- that has a <code title=attr-hyperlink-target><a
- href="#target3">target</a></code> attribute, then the browsing context
- that is navigated must be chosen by applying <a href="#the-rules">the
- rules for chosing a browsing context given a browsing context name</a>,
- using the value of the <code title=attr-hyperlink-target><a
- href="#target3">target</a></code> attribute as the browsing context name.
- If these rules result in the creation of a new <a
- href="#browsing0">browsing context</a>, it must be navigated with <a
- href="#replacement">replacement enabled</a>.
-
- <p>Otherwise, if the hyperlink element is a <a href="#sidebar0"
- title=rel-sidebar-hyperlink>sidebar hyperlink</a> and the user agent
- implements a feature that can be considered a secondary browsing context,
- such a secondary browsing context may be selected as the browsing context
- to be navigated.
-
- <p>Otherwise, if the hyperlink element is an <code><a
- href="#a">a</a></code> or <code><a href="#area">area</a></code> element
- with no <code title=attr-hyperlink-target><a
- href="#target3">target</a></code> attribute, but one of the child nodes of
- <a href="#the-head0">the <code>head</code> element</a> is a <code><a
- href="#base">base</a></code> element with a <code
- title=attr-base-target><a href="#target">target</a></code> attribute, then
- the browsing context that is navigated must be chosen by applying <a
- href="#the-rules">the rules for chosing a browsing context given a
- browsing context name</a>, using the value of the <code
- title=attr-base-target><a href="#target">target</a></code> attribute of
- the first such <code><a href="#base">base</a></code> element as the
- browsing context name. If these rules result in the creation of a new <a
- href="#browsing0">browsing context</a>, it must be navigated with <a
- href="#replacement">replacement enabled</a>.
-
- <p>Otherwise, the browsing context that must be navigated is the same
- browsing context as the one which the hyperlink element itself is in.
-
- <h5 id=hyperlink0><span class=secno>4.4.2.1. </span>Hyperlink auditing</h5>
-
- <p>If an <code><a href="#a">a</a></code> or <code><a
- href="#area">area</a></code> hyperlink element has a <code
- title=attr-hyperlink-ping><a href="#ping">ping</a></code> attribute and
- the user follows the hyperlink, the user agent must take the <code
- title=attr-hyperlink-ping><a href="#ping">ping</a></code> attribute's
- value, strip leading and trailing <a href="#space" title="space
- character">spaces</a>, split the value on sequences of spaces, treat each
- resulting part as a URI (resolving relative URIs according to element's
- base URI) and then should send a request to each of the resulting URIs.
- This may be done in parallel with the primary request, and is independent
- of the result of that request.
-
- <p>User agents should allow the user to adjust this behaviour, for example
- in conjunction with a setting that disables the sending of HTTP Referrer
- headers. Based on the user's preferences, UAs may either <a
- href="#ignored">ignore</a> the <code title=attr-hyperlink-ping><a
- href="#ping">ping</a></code> attribute altogether, or selectively ignore
- URIs in the list (e.g. ignoring any third-party URIs).
-
- <p>For URIs that are HTTP URIs, the requests must be performed using the
- POST method (with an empty entity body in the request). User agents must
- ignore any entity bodies returned in the responses, but must, unless
- otherwise specified by the user, honour the HTTP headers — in
- particular, HTTP cookie headers. <a href="#refsRFC2965">[RFC2965]</a>
-
- <p class=note>To save bandwidth, implementors might wish to consider
- omitting optional headers such as <code>Accept</code> from these requests.
-
- <p>When the <code title=attr-hyperlink-ping><a href="#ping">ping</a></code>
- attribute is present, user agents should clearly indicate to the user that
- following the hyperlink will also cause secondary requests to be sent in
- the background, possibly including listing the actual target URIs.
-
- <div class=note>
- <p>The <code title=attr-hyperlink-ping><a href="#ping">ping</a></code>
- attribute is redundant with pre-existing technologies like HTTP redirects
- and JavaScript in allowing Web pages to track which off-site links are
- most popular or allowing advertisers to track click-through rates.</p>
-
- <p>However, the <code title=attr-hyperlink-ping><a
- href="#ping">ping</a></code> attribute provides these advantages to the
- user over those alternatives:</p>
-
- <ul>
- <li>It allows the user to see the final target URI unobscured.
-
- <li>It allows the UA to inform the user about the out-of-band
- notifications.
-
- <li>It allows the paranoid user to disable the notifications without
- losing the underlying link functionality.
-
- <li>It allows the UA to optimise the use of available network bandwidth
- so that the target page loads faster.
- </ul>
-
- <p>Thus, while it is possible to track users without this feature, authors
- are encouraged to use the <code title=attr-hyperlink-ping><a
- href="#ping">ping</a></code> attribute so that the user agent can improve
- <!-- XXX optimise? --> the user experience.</p>
- <!--
- XXX need a better way to end that sentence. It's what I mean, but
- it sounds kooky. -->
- </div>
-
- <h4 id=linkTypes><span class=secno>4.4.3. </span>Link types</h4>
-
- <p>The following table summarises the link types that are defined by this
- specification. This table is non-normative; the actual definitions for the
- link types are given in the next few sections.
-
- <p>In this section, the term <em>referenced document</em> refers to the
- resource identified by the element representing the link, and the term
- <em>current document</em> refers to the resource within which the element
- representing the link finds itself.
-
- <p>To determine which link types apply to a <code><a
- href="#link">link</a></code>, <code><a href="#a">a</a></code>, or <code><a
- href="#area">area</a></code> element, the element's <code
- title="">rel</code> attribute must be <a href="#split" title="split a
- string on spaces">split on spaces</a>. The resulting tokens are the link
- types that apply to that element.
-
- <table>
- <thead>
- <tr>
- <th rowspan=2>Link type
-
- <th colspan=2>Effect on...
-
- <th rowspan=2>Brief description
-
- <tr>
- <th><code><a href="#link">link</a></code>
-
- <th><code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code>
-
- <tbody>
- <tr>
- <td><code title=rel-alternate><a href="#alternate">alternate</a></code></td>
- <!-- second most used <link rel> value -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives alternate representations of the current document.
-
- <tr>
- <td><code title=rel-archives><a href="#archives">archives</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Provides a link to a collection of records, documents, or other
- materials of historical interest.
-
- <tr>
- <td><code title=rel-author><a href="#author">author</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives a link to the current document's author.
-
- <tr>
- <td><code title=rel-bookmark><a href="#bookmark">bookmark</a></code></td>
- <!-- fourth most used <a rel> value -->
-
- <td><em>not allowed</em>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives the permalink for the nearest ancestor section.
-
- <tr>
- <td><code title=rel-contact><a href="#contact">contact</a></code></td>
- <!-- 8th most used <a rel> value -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives a link to contact information for the current document.
-
- <tr>
- <td><code title=rel-external><a href="#external">external</a></code></td>
- <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
-
- <td><em>not allowed</em>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the referenced document is not part of the same site
- as the current document.
-
- <tr>
- <td><code title=rel-feed><a href="#feed">feed</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives the address of a syndication feed for the current document.
-
- <tr>
- <td><code title=rel-first><a href="#first">first</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document is a part of a series, and that
- the first document in the series is the referenced document.
-
- <tr>
- <td><code title=rel-help><a href="#help">help</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Provides a link to context-sensitive help.
-
- <tr>
- <td><code title=rel-icon><a href="#icon3">icon</a></code></td>
- <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
-
- <td><a href="#links1" title="external resource link">External
- Resource</a>
-
- <td><em>not allowed</em>
-
- <td>Imports an icon to represent the current document.
-
- <tr>
- <td><code title=rel-index><a href="#index">index</a></code></td>
- <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives a link to the document that provides a table of contents or
- index listing the current document.
-
- <tr>
- <td><code title=rel-last><a href="#last">last</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document is a part of a series, and that
- the last document in the series is the referenced document.
-
- <tr>
- <td><code title=rel-license><a href="#license">license</a></code></td>
- <!-- seventh most used <a rel> value -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document is covered by the copyright
- license described by the referenced document.
-
- <tr>
- <td><code title=rel-next><a href="#next">next</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document is a part of a series, and that
- the next document in the series is the referenced document.
-
- <tr>
- <td><code title=rel-nofollow><a href="#nofollow">nofollow</a></code></td>
- <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
-
- <td><em>not allowed</em>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document's original author or publisher
- does not endorse the referenced document.
-
- <tr>
- <td><code title=rel-pingback><a href="#pingback">pingback</a></code>
-
- <td><a href="#links1" title="external resource link">External
- Resource</a>
-
- <td><em>not allowed</em>
-
- <td>Gives the address of the pingback server that handles pingbacks to
- the current document.
-
- <tr>
- <td><code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
-
- <td><a href="#links1" title="external resource link">External
- Resource</a>
-
- <td><em>not allowed</em>
-
- <td>Specifies that the target resource should be pre-emptively cached.
-
- <tr>
- <td><code title=rel-prev><a href="#prev">prev</a></code></td>
- <!-- prev is used more than previous -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Indicates that the current document is a part of a series, and that
- the previous document in the series is the referenced document.
-
- <tr>
- <td><code title=rel-search><a href="#search0">search</a></code></td>
- <!-- used quite a bit -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives a link to a resource that can be used to search through the
- current document and its related pages.
-
- <tr>
- <td><code title=rel-stylesheet><a
- href="#stylesheet">stylesheet</a></code></td>
- <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
-
- <td><a href="#links1" title="external resource link">External
- Resource</a>
-
- <td><em>not allowed</em>
-
- <td>Imports a stylesheet.
-
- <tr>
- <td><code title=rel-sidebar><a href="#sidebar">sidebar</a></code></td>
- <!-- used quite a bit -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Specifies that the referenced document, if retrieved, is intended to
- be shown in the browser's sidebar (if it has one).
-
- <tr>
- <td><code title=rel-tag><a href="#tag">tag</a></code></td>
- <!-- second and third most used <a rel> value (third is technically "category tag"). -->
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Gives a tag (identified by the given address) that applies to the
- current document.
-
- <tr>
- <td><code title=rel-up><a href="#up">up</a></code>
-
- <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
-
- <td><a href="#hyperlinks">Hyperlink</a>
-
- <td>Provides a link to a document giving the context for the current
- document.
- </table>
-
- <p>Some of the types described below list synonyms for these values. These
- are to be handled as specified by user agents, but must not be used in
- documents.</p>
- <!--XXX
-
- issues for rel="", etc:
- rel="alternate stylesheet"
- rel="script"
- rel="related" // see also
- which relationship combinations are allowed
- what multiple values might mean (multiple <a rel="top"> in the same document)
- http://www.euronet.nl/~tekelenb/WWW/LINK/
- http://shift.freezope.org/konq_rellinks/development_html
- http://hixie.ch/specs/html/link/001
- http://hixie.ch/specs/html/link/002
- http://www.hixie.ch/specs/html/metadata
- what UAs are supposed to do with this
- do something about http://microformats.org/wiki/rel-enclosure
-
-mpt says:
-> "As with <a> elements, when <link> elements that use these relationships
-> are present, UAs should render them. As with <a> elements, when <link>
-> elements that use these relationships do not exist, UAs should not
-> render them. UAs should not make <link> rendering any easier to hide
-> than <a> rendering."
-
-for microformats (e.g. to refer to an hcard from an hcalendar):
-rel=xref
-<a> and <area> only
-The href attribute's value must start with a '#' character.
-Indicates an in-page cross-reference. For the purposes of data mining tools, the subtree rooted
-at the first element with the given ID must be treated as if it was cloned and replaced the <a> element.
-
- -->
-
- <h5 id=link-type><span class=secno>4.4.3.1. </span>Link type "<dfn
- id=alternate title=rel-alternate><code>alternate</code></dfn>"</h5>
-
- <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
- keyword may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, if the <code
- title=attr-link-rel><a href="#rel">rel</a></code> attribute does not also
- contain the keyword <code title=rel-stylesheet><a
- href="#stylesheet">stylesheet</a></code>, it creates a <a
- href="#hyperlink1" title="hyperlink link">hyperlink</a>; but if it
- <em>does</em> also contains the keyword <code title=rel-stylesheet><a
- href="#stylesheet">stylesheet</a></code>, the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword instead modifies the
- meaning of the <code title=rel-stylesheet><a
- href="#stylesheet">stylesheet</a></code> keyword in the way described for
- that keyword, and the rest of this subsection doesn't apply.
-
- <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
- keyword indicates that the referenced document is an alternate
- representation of the current document.
-
- <p>The nature of the referenced document is given by the <code
- title=attr-hyperlink-media><a href="#media12">media</a></code>, <code
- title=attr-hyperlink-hreflang><a href="#hreflang3">hreflang</a></code>,
- and <code title=attr-hyperlink-type><a href="#type17">type</a></code>
- attributes.
-
- <p>If the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword is used with the <code
- title=attr-hyperlink-media><a href="#media12">media</a></code> attribute,
- it indicates that the referenced document is intended for use with the
- media specified.
-
- <p>If the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword is used with the <code
- title=attr-hyperlink-hreflang><a href="#hreflang3">hreflang</a></code>
- attribute, and that attribute's value differs from the <a
- href="#root-element">root element</a>'s <a href="#language">language</a>,
- it indicates that the referenced document is a translation.
-
- <p>If the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword is used with the <code
- title=attr-hyperlink-type><a href="#type17">type</a></code> attribute, it
- indicates that the referenced document is a reformulation of the current
- document in the specified format.
-
- <p>The <code title=attr-hyperlink-media><a
- href="#media12">media</a></code>, <code title=attr-hyperlink-hreflang><a
- href="#hreflang3">hreflang</a></code>, and <code
- title=attr-hyperlink-type><a href="#type17">type</a></code> attributes can
- be combined when specified with the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword.
-
- <div class=example>
- <p>For example, the following link is a French translation that uses the
- PDF format:</p>
-
- <pre><link rel=alternate type=application/pdf hreflang=fr href=manual-fr></pre>
- </div>
-
- <p>If the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword is used with the <code
- title=attr-hyperlink-type><a href="#type17">type</a></code> attribute set
- to the value <code title="">application/rss+xml</code> or the value <code
- title="">application/atom+xml</code>, then the user agent must treat the
- link as it would if it had the <code title=rel-feed><a
- href="#feed">feed</a></code> keyword specified as well.
-
- <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
- link relationship is transitive — that is, if a document links to
- two other documents with the link type "<code title=rel-alternate><a
- href="#alternate">alternate</a></code>", then, in addition to implying
- that those documents are alternative representations of the first
- document, it is also implying that those two documents are alternative
- representations of each other.
-
- <h5 id=link-type0><span class=secno>4.4.3.2. </span>Link type "<dfn
- id=archives title=rel-archives><code>archives</code></dfn>"</h5>
-
- <p>The <code title=rel-archives><a href="#archives">archives</a></code>
- keyword may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-archives><a href="#archives">archives</a></code>
- keyword indicates that the referenced document describes a collection of
- records, documents, or other materials of historical interest.
-
- <p class=example>A blog's index page could link to an index of the blog's
- past posts with <code title="">rel="archives"</code>.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keyword "<code title="">archive</code>" like the <code
- title=rel-archives><a href="#archives">archives</a></code> keyword.
-
- <h5 id=link-type1><span class=secno>4.4.3.3. </span>Link type "<dfn
- id=author title=rel-author><code>author</code></dfn>"</h5>
-
- <p>The <code title=rel-author><a href="#author">author</a></code> keyword
- may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>For <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements, the <code title=rel-author><a
- href="#author">author</a></code> keyword indicates that the referenced
- document provides further information about the author of the section that
- the element defining the hyperlink <a href="#applyToSection">applies</a>
- to.
-
- <p>For <code><a href="#link">link</a></code> elements, the <code
- title=rel-author><a href="#author">author</a></code> keyword indicates
- that the referenced document provides further information about the author
- for the page as a whole.
-
- <p class=note>The "referenced document" can be, and often is, a <code
- title="">mailto:</code> URI giving the e-mail address of the author. <a
- href="#refsMAILTO">[MAILTO]</a>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code> elements
- that have a <code title="">rev</code> attribute with the value
- "<code>made</code>" as having the <code title=rel-author><a
- href="#author">author</a></code> keyword specified as a link relationship.
-
- <h5 id=link-type2><span class=secno>4.4.3.4. </span>Link type "<dfn
- id=bookmark title=rel-bookmark><code>bookmark</code></dfn>"</h5>
-
- <p>The <code title=rel-bookmark><a href="#bookmark">bookmark</a></code>
- keyword may be used with <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements.
-
- <p>The <code title=rel-bookmark><a href="#bookmark">bookmark</a></code>
- keyword gives a permalink for the nearest ancestor <code><a
- href="#article">article</a></code> element of the linking element in
- question, or of <a href="#associatedSection">the section the linking
- element is most closely associated with</a>, if there are no ancestor
- <code><a href="#article">article</a></code> elements.
-
- <div class=example>
- <p>The following snippet has three permalinks. A user agent could
- determine which permalink applies to which part of the spec by looking at
- where the permalinks are given.</p>
-
- <pre> ...
- <body>
- <h1>Example of permalinks</h1>
- <div id="a">
- <h2>First example</h2>
- <p><a href="a.html" rel="bookmark">This</a> permalink applies to
- only the content from the first H2 to the second H2. The DIV isn't
- exactly that section, but it roughly corresponds to it.</p>
- </div>
- <h2>Second example</h2>
- <article id="b">
- <p><a href="b.html" rel="bookmark">This</a> permalink applies to
- the outer ARTICLE element (which could be, e.g., a blog post).</p>
- <article id="c">
- <p><a href="c.html" rel="bookmark">This</a> permalink applies to
- the inner ARTICLE element (which could be, e.g., a blog comment).</p>
- </article>
- </article>
- </body>
- ...</pre>
- </div>
-
- <h5 id=link-type3><span class=secno>4.4.3.5. </span>Link type "<dfn
- id=contact title=rel-contact><code>contact</code></dfn>"</h5>
-
- <p>The <code title=rel-contact><a href="#contact">contact</a></code>
- keyword may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>For <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements, the <code title=rel-contact><a
- href="#contact">contact</a></code> keyword indicates that the referenced
- document provides further contact information for the section that the
- element defining the hyperlink <a href="#applyToSection">applies</a> to.
-
- <p>User agents must treat any hyperlink in an <code><a
- href="#address">address</a></code> element as having the <code
- title=rel-contact><a href="#contact">contact</a></code> link type
- specified.
-
- <p>For <code><a href="#link">link</a></code> elements, the <code
- title=rel-contact><a href="#contact">contact</a></code> keyword indicates
- that the referenced document provides further contact information for the
- page as a whole.
-
- <h5 id=link-type4><span class=secno>4.4.3.6. </span>Link type "<dfn
- id=external title=rel-external><code>external</code></dfn>"</h5>
-
- <p>The <code title=rel-external><a href="#external">external</a></code>
- keyword may be used with <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements.
-
- <p>The <code title=rel-external><a href="#external">external</a></code>
- keyword indicates that the link is leading to a document that is not part
- of the site that the current document forms a part of.
-
- <h5 id=link-type5><span class=secno>4.4.3.7. </span>Link type "<dfn id=feed
- title=rel-feed><code>feed</code></dfn>"</h5>
-
- <p>The <code title=rel-feed><a href="#feed">feed</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-feed><a href="#feed">feed</a></code> keyword
- indicates that the referenced document is a syndication feed. If the <code
- title=rel-alternate><a href="#alternate">alternate</a></code> link type is
- also specified, then the feed is specifically the feed for the current
- document; otherwise, the feed is just a syndication feed, not necessarily
- associated with a particular Web page.
-
- <p>The first <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, or <code><a href="#area">area</a></code> element
- in the document (in tree order) that creates a hyperlink with the link
- type <code title=rel-feed><a href="#feed">feed</a></code> must be treated
- as the default syndication feed for the purposes of feed autodiscovery.
-
- <p class=note>The <code title=rel-feed><a href="#feed">feed</a></code>
- keyword is implied by the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> link type in certain cases (q.v.).
-
- <div class=example>
- <p>The following two <code><a href="#link">link</a></code> elements are
- equivalent: both give the syndication feed for the current page:</p>
-
- <pre><link rel="alternate" type="application/atom+xml" href="data.xml"></pre>
-
- <pre><link rel="feed alternate" href="data.xml"></pre>
-
- <p>The following extract offers various different syndication feeds:</p>
-
- <pre> <p>You can access the planets database using Atom feeds:</p>
- <ul>
- <li><a href="recently-visited-planets.xml" rel="feed">Recently Visited Planets</a></li>
- <li><a href="known-bad-planets.xml" rel="feed">Known Bad Planets</a></li>
- <li><a href="unexplored-planets.xml" rel="feed">Unexplored Planets</a></li>
- </ul></pre>
- </div>
-
- <h5 id=link-type6><span class=secno>4.4.3.8. </span>Link type "<dfn id=help
- title=rel-help><code>help</code></dfn>"</h5>
-
- <p>The <code title=rel-help><a href="#help">help</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>For <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements, the <code title=rel-help><a
- href="#help">help</a></code> keyword indicates that the referenced
- document provides further help information for the parent of the element
- defining the hyperlink, and its children.
-
- <div class=example>
- <p>In the following example, the form control has associated
- context-sensitive help. The user agent could use this information, for
- example, displaying the referenced document if the user presses the
- "Help" or "F1" key.</p>
-
- <pre> <p><label> Topic: <input name=topic> <a href="help/topic.html" rel="help">(Help)</a></label></p></pre>
- </div>
-
- <p>For <code><a href="#link">link</a></code> elements, the <code
- title=rel-help><a href="#help">help</a></code> keyword indicates that the
- referenced document provides help for the page as a whole.
-
- <h5 id=link-type7><span class=secno>4.4.3.9. </span>Link type "<dfn
- id=icon3 title=rel-icon><code>icon</code></dfn>"</h5>
-
- <p>The <code title=rel-icon><a href="#icon3">icon</a></code> keyword may be
- used with <code><a href="#link">link</a></code> elements, for which it
- creates an <a href="#links1" title="external resource link">external
- resource link</a>.
-
- <p>The specified resource is an icon representing the page or site, and
- should be used by the user agent when representing the page in the user
- interface.
-
- <p>Icons could be auditory icons, visual icons, or other kinds of icons. If
- multiple icons are provided, the user agent must select the most
- appropriate icon according to the <code title=attr-link-media><a
- href="#media0">media</a></code> attribute.
-
- <h5 id=link-type8><span class=secno>4.4.3.10. </span>Link type "<dfn
- id=license title=rel-license><code>license</code></dfn>"</h5>
-
- <p>The <code title=rel-license><a href="#license">license</a></code>
- keyword may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-license><a href="#license">license</a></code>
- keyword indicates that the referenced document provides the copyright
- license terms under which the current document is provided.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keyword "<code title="">copyright</code>" like the <code
- title=rel-license><a href="#license">license</a></code> keyword.
-
- <h5 id=link-type9><span class=secno>4.4.3.11. </span>Link type "<dfn
- id=nofollow title=rel-nofollow><code>nofollow</code></dfn>"</h5>
-
- <p>The <code title=rel-nofollow><a href="#nofollow">nofollow</a></code>
- keyword may be used with <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code> elements.
-
- <p>The <code title=rel-nofollow><a href="#nofollow">nofollow</a></code>
- keyword indicates that the link is not endorsed by the original author or
- publisher of the page.
-
- <h5 id=link-type10><span class=secno>4.4.3.12. </span>Link type "<dfn
- id=pingback title=rel-pingback><code>pingback</code></dfn>"</h5>
-
- <p>The <code title=rel-pingback><a href="#pingback">pingback</a></code>
- keyword may be used with <code><a href="#link">link</a></code> elements,
- for which it creates an <a href="#links1" title="external resource
- link">external resource link</a>.
-
- <p>For the semantics of the <code title=rel-pingback><a
- href="#pingback">pingback</a></code> keyword, see the Pingback 1.0
- specification. <a href="#refsPINGBACK">[PINGBACK]</a>
-
- <h5 id=link-type11><span class=secno>4.4.3.13. </span>Link type "<dfn
- id=prefetch title=rel-prefetch><code>prefetch</code></dfn>"</h5>
-
- <p>The <code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
- keyword may be used with <code><a href="#link">link</a></code> elements,
- for which it creates an <a href="#links1" title="external resource
- link">external resource link</a>.
-
- <p>The <code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
- keyword indicates that preemptively fetching and caching the specified
- resource is likely to be beneficial, as it is highly likely that the user
- will require this resource.
-
- <h5 id=link-type12><span class=secno>4.4.3.14. </span>Link type "<dfn
- id=search0 title=rel-search><code>search</code></dfn>"</h5>
-
- <p>The <code title=rel-search><a href="#search0">search</a></code> keyword
- may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-search><a href="#search0">search</a></code> keyword
- indicates that the referenced document provides an interface specifically
- for searching the document and its related resources.
-
- <p class=note>OpenSearch description documents can be used with <code><a
- href="#link">link</a></code> elements and the <code title=rel-search><a
- href="#search0">search</a></code> link type to enable user agents to
- autodiscover search interfaces.
-
- <h5 id=link-type13><span class=secno>4.4.3.15. </span>Link type "<dfn
- id=stylesheet title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
-
- <p>The <code title=rel-stylesheet><a
- href="#stylesheet">stylesheet</a></code> keyword may be used with <code><a
- href="#link">link</a></code> elements, for which it creates an <a
- href="#links1" title="external resource link">external resource link</a>
- that contributes to the <a href="#styling0">styling processing model</a>.
-
- <p>The specified resource is a resource that describes how to present the
- document. Exactly how the resource is to be processed depends on the
- actual type of the resource.
-
- <p>If the <code title=rel-alternate><a
- href="#alternate">alternate</a></code> keyword is also specified on the
- <code><a href="#link">link</a></code> element, then the link is an
- alternative stylesheet.
-
- <h5 id=link-type14><span class=secno>4.4.3.16. </span>Link type "<dfn
- id=sidebar title=rel-sidebar><code>sidebar</code></dfn>"</h5>
-
- <p>The <code title=rel-sidebar><a href="#sidebar">sidebar</a></code>
- keyword may be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-sidebar><a href="#sidebar">sidebar</a></code>
- keyword indicates that the referenced document, if retrieved, is intended
- to be shown in a <a href="#secondary0">secondary browsing context</a> (if
- possible), instead of in the current <a href="#browsing0">browsing
- context</a>.
-
- <p>A <a href="#hyperlinks" title=hyperlink>hyperlink element</a> with with
- the <code title=rel-sidebar><a href="#sidebar">sidebar</a></code> keyword
- specified is a <dfn id=sidebar0 title=rel-sidebar-hyperlink>sidebar
- hyperlink</dfn>.
-
- <h5 id=link-type15><span class=secno>4.4.3.17. </span>Link type "<dfn
- id=tag title=rel-tag><code>tag</code></dfn>"</h5>
-
- <p>The <code title=rel-tag><a href="#tag">tag</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-tag><a href="#tag">tag</a></code> keyword indicates
- that the <em>tag</em> that the referenced document represents applies to
- the current document.
-
- <h5 id=hierarchical><span class=secno>4.4.3.18. </span>Hierarchical link
- types</h5>
-
- <p>Some documents form part of a hierarchical structure of documents.
-
- <p>A hierarchical structure of documents is one where each document can
- have various subdocuments. A subdocument is said to be a <em>child</em> of
- the document it is a subdocument of. The document of which it is a
- subdocument is said to be its <em>parent</em>. The children of a document
- have a relative order; the subdocument that precedes another is its
- <em>previous sibling</em>, and the one that follows it is its <em>next
- sibling</em>. A document with no parent forms the top of the hierarchy.
-
- <h6 id=link-type16><span class=secno>4.4.3.18.1. </span>Link type "<dfn
- id=first title=rel-first><code>first</code></dfn>"</h6>
-
- <p>The <code title=rel-first><a href="#first">first</a></code> keyword may
- be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-first><a href="#first">first</a></code> keyword
- indicates that the document is part of a hierarchical structure, and that
- the link is leading to the document that is the first child of the current
- document's parent document.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keywords "<code title="">begin</code>" and "<code
- title="">start</code>" like the <code title=rel-first><a
- href="#first">first</a></code> keyword.
-
- <h6 id=link-type17><span class=secno>4.4.3.18.2. </span>Link type "<dfn
- id=index title=rel-index><code>index</code></dfn>"</h6>
-
- <p>The <code title=rel-index><a href="#index">index</a></code> keyword may
- be used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-index><a href="#index">index</a></code> keyword
- indicates that the document is part of a hierarchical structure, and that
- the link is leading to the document that is the top of the hierarchy.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keywords "<code title="">top</code>", "<code
- title="">contents</code>", and "<code title="">toc</code>" like the <code
- title=rel-index><a href="#index">index</a></code> keyword.
-
- <h6 id=link-type18><span class=secno>4.4.3.18.3. </span>Link type "<dfn
- id=last title=rel-last><code>last</code></dfn>"</h6>
-
- <p>The <code title=rel-last><a href="#last">last</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-last><a href="#last">last</a></code> keyword
- indicates that the document is part of a hierarchical structure, and that
- the link is leading to the document that is the last child of the current
- document's parent document.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keyword "<code title="">end</code>" like the <code
- title=rel-last><a href="#last">last</a></code> keyword.
-
- <h6 id=link-type19><span class=secno>4.4.3.18.4. </span>Link type "<dfn
- id=next title=rel-next><code>next</code></dfn>"</h6>
-
- <p>The <code title=rel-next><a href="#next">next</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-next><a href="#next">next</a></code> keyword
- indicates that the document is part of a hierarchical structure, and that
- the link is leading to the document that is the next sibling of the
- current document.
-
- <h6 id=link-type20><span class=secno>4.4.3.18.5. </span>Link type "<dfn
- id=prev title=rel-prev><code>prev</code></dfn>"</h6>
-
- <p>The <code title=rel-prev><a href="#prev">prev</a></code> keyword may be
- used with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-prev><a href="#prev">prev</a></code> keyword
- indicates that the document is part of a hierarchical structure, and that
- the link is leading to the document that is the previous sibling of the
- current document.
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents must also
- treat the keyword "<code title="">previous</code>" like the <code
- title=rel-prev><a href="#prev">prev</a></code> keyword.
-
- <h6 id=link-type21><span class=secno>4.4.3.18.6. </span>Link type "<dfn
- id=up title=rel-up><code>up</code></dfn>"</h6>
-
- <p>The <code title=rel-up><a href="#up">up</a></code> keyword may be used
- with <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. For <code><a href="#link">link</a></code> elements, it creates a
- <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
-
- <p>The <code title=rel-up><a href="#up">up</a></code> keyword indicates
- that the document is part of a hierarchical structure, and that the link
- is leading to the document that is the parent of the current document.</p>
- <!-- idea: rel="up" vs rel="up up" vs rel="up up up top"
- this would allow you to do breadcrumbs:
- <nav>
- <p>
- <a href="/" rel="top up up up">Main</a> >
- <a href="/products/" rel="up up">Products</a> >
- <a href="/products/dishwashers" rel="up">Dishwashers</a> >
- Second hand
- </p>
- </nav>
- -->
-
- <h5 id=other0><span class=secno>4.4.3.19. </span>Other link types</h5>
-
- <p>Other than the types defined above, only types defined as extensions in
- the <a href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
- RelExtensions page</a> may be used with the <code title="">rel</code>
- attribute on <code><a href="#link">link</a></code>, <code><a
- href="#a">a</a></code>, and <code><a href="#area">area</a></code>
- elements. <a href="#refsWHATWGWIKI">[WHATWGWIKI]</a>
-
- <p>Anyone is free to edit the WHATWG Wiki RelExtensions page at any time to
- add a type. Extension types must be specified with the following
- information:
-
- <dl>
- <dt>Keyword
-
- <dd>
- <p>The actual value being defined. The value should not be confusingly
- similar to any other defined value (e.g. differing only in case).
-
- <dt>Effect on... <code><a href="#link">link</a></code>
-
- <dd>
- <p>One of the following:</p>
-
- <dl>
- <dt>not allowed
-
- <dd>The keyword is not allowed to be specified on <code><a
- href="#link">link</a></code> elements.
-
- <dt>Hyperlink
-
- <dd>The keyword may be specified on a <code><a
- href="#link">link</a></code> element; it creates a <a
- href="#hyperlink1" title="hyperlink link">hyperlink link</a>.
-
- <dt>External Resource
-
- <dd>The keyword may be specified on a <code><a
- href="#link">link</a></code> element; it creates a <a href="#links1"
- title="external resource link">external resource link</a>.
- </dl>
-
- <dt>Effect on... <code><a href="#a">a</a></code> and <code><a
- href="#area">area</a></code>
-
- <dd>
- <p>One of the following:</p>
-
- <dl>
- <dt>not allowed
-
- <dd>The keyword is not allowed to be specified on <code><a
- href="#a">a</a></code> and <code><a href="#area">area</a></code>
- elements.
-
- <dt>Hyperlink
-
- <dd>The keyword may be specified on <code><a href="#a">a</a></code> and
- <code><a href="#area">area</a></code> elements; it creates a <a
- href="#hyperlinks" title=hyperlink>hyperlink</a>.
- </dl>
-
- <dt>Brief description
-
- <dd>
- <p>A short description of what the keyword's meaning is.
-
- <dt>Link to more details
-
- <dd>
- <p>A link to a more detailed description of the keyword's semantics and
- requirements. It could be another page on the Wiki, or a link to an
- external page.
-
- <dt>Synonyms
-
- <dd>
- <p>A list of other keyword values that have exactly the same processing
- requirements. Authors must not use the values defined to be synonyms,
- they are only intended to allow user agents to support legacy content.
-
- <dt>Status
-
- <dd>
- <p>One of the following:</p>
-
- <dl>
- <dt>Proposal
-
- <dd>The keyword has not received wide peer review and approval. It is
- included for completeness because pages use the keyword. Pages should
- not use the keyword.
-
- <dt>Accepted
-
- <dd>The keyword has received wide peer review and approval. It has a
- specification that unambiguously defines how to handle pages that use
- the keyword, including when they use them in incorrect ways. Pages may
- use the keyword.
-
- <dt>Rejected
-
- <dd>The keyword has received wide peer review and it has been found to
- have significant problems. Pages must not use the keyword. When a
- keyword has this status, the "Effect on... <code><a
- href="#link">link</a></code>" and "Effect on... <code><a
- href="#a">a</a></code> and <code><a href="#area">area</a></code>"
- information should be set to "not allowed".
- </dl>
-
- <p>If a keyword is added with the "proposal" status and found to be
- redundant with existing values, it should be removed and listed as a
- synonym for the existing value. If a keyword is added with the
- "proposal" status and found to be harmful, then it should be changed to
- "rejected" status, and its "Effect on..." information should be changed
- accordingly.</p>
- </dl>
-
- <p>Conformance checkers must use the information given on the WHATWG Wiki
- RelExtensions page to establish if a value not explicitly defined in this
- specification is allowed or not. When an author uses a new type not
- defined by either this specification or the Wiki page, conformance
- checkers should offer to add the value to the Wiki, with the details
- described above, with the "proposal" status.
-
- <p>This specification does not define how new values will get approved. It
- is expected that the Wiki will have a community that addresses this.
-
- <h3 id=interfaces><span class=secno>4.5. </span>Interfaces for URI
- manipulation</h3>
-
- <p>An interface that has a complement of <dfn id=uri-decomposition>URI
- decomposition attributes</dfn> will have seven attributes with the
- following definitions:
-
- <pre class=idl>
- attribute DOMString <a href="#protocol0" title=dom-uda-protocol>protocol</a>;
- attribute DOMString <a href="#host0" title=dom-uda-host>host</a>;
- attribute DOMString <a href="#hostname0" title=dom-uda-hostname>hostname</a>;
- attribute DOMString <a href="#port0" title=dom-uda-port>port</a>;
- attribute DOMString <a href="#pathname0" title=dom-uda-pathname>pathname</a>;
- attribute DOMString <a href="#search1" title=dom-uda-search>search</a>;
- attribute DOMString <a href="#hash0" title=dom-uda-hash>hash</a>;
-</pre>
-
- <p>The attributes defined to be URI decomposition attributes must act as
- described for the attributes with the same corresponding names in this
- section.
-
- <p>In addition, an interface with a complement of URI decomposition
- attributes will define an <dfn id=input
- title=concept-uda-input>input</dfn>, which is a URI that the attributes
- act on, and a <dfn id=common3 title=concept-uda-setter>common setter
- action</dfn>, which is a set of steps invoked when any of the attributes'
- setters are invoked.
-
- <p>The seven URI decomposition attributes have similar requirements.
-
- <p>On getting, if the <a href="#input" title=concept-uda-input>input</a>
- fulfills the condition given in the "getter condition" column
- corresponding to the attribute in the table below, the user agent must
- return the part of the <a href="#input" title=concept-uda-input>input</a>
- URI given in the "component" column, with any prefixes specified in the
- "prefix" column appropriately added to the start of the string and any
- suffixes specified in the "suffix" column appropriately added to the end
- of the string. Otherwise, the attribute must return the empty string.
-
- <p>On setting, the new value must first be mutated as described by the
- "setter preprocessor" column, then mutated by %-escaping any characters in
- the new value that are not valid in the relevant component as given by the
- "component" column. Then, if the resulting new value fulfills the
- condition given in the "setter condition" column, the user agent must make
- a new string <var title="">output</var> by replacing the component of the
- URI given by the "component" column in the <a href="#input"
- title=concept-uda-input>input</a> URI with the new value; otherwise, the
- user agent must let <var title="">output</var> be equal to the <a
- href="#input" title=concept-uda-input>input</a>. Finally, the user agent
- must invoke the <a href="#common3" title=concept-uda-setter>common setter
- action</a> with the value of <var title="">output</var>.
-
- <p>The rules for parsing and constructing URIs are described in RFC 3986
- and RFC 3987, as modified by RFC 2732. <a
- href="#refsRFC3986">[RFC3986]</a> <a href="#refsRFC3987">[RFC3987]</a> <a
- href="#refsRFC2732">[RFC2732]</a>
-
- <table>
- <thead>
- <tr>
- <th>Attribute
-
- <th>Component
-
- <th>Getter Condition
-
- <th>Prefix
-
- <th>Suffix
-
- <th>Setter Preprocessor
-
- <th>Setter Condition
-
- <tbody>
- <tr>
- <td><dfn id=protocol0 title=dom-uda-protocol><code>protocol</code></dfn>
-
-
- <td><scheme>
-
- <td>—
-
- <td>—
-
- <td>U+003A COLON ("<code title="">:</code>")
-
- <td>Remove all trailing U+003A COLON ("<code title="">:</code>")
- characters
-
- <td>The new value is not the empty string
-
- <tr>
- <td><dfn id=host0 title=dom-uda-host><code>host</code></dfn>
-
- <td><hostport>
-
- <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
- and uses a server-based naming authority
-
- <td>—
-
- <td>—
-
- <td>—
-
- <td>—
-
- <tr>
- <td><dfn id=hostname0 title=dom-uda-hostname><code>hostname</code></dfn>
-
-
- <td><host>
-
- <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
- and uses a server-based naming authority
-
- <td>—
-
- <td>—
-
- <td>Remove all leading U+002F SOLIDUS ("<code title="">/</code>")
- characters
-
- <td>—
-
- <tr>
- <td><dfn id=port0 title=dom-uda-port><code>port</code></dfn>
-
- <td><port>
-
- <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
- and uses a server-based naming authority
-
- <td>—
-
- <td>—
-
- <td>Remove any characters in the new value that are not in the range
- U+0030 DIGIT ZERO .. U+0039 DIGIT NINE
-
- <td>The new value is not the empty string
-
- <tr>
- <td><dfn id=pathname0 title=dom-uda-pathname><code>pathname</code></dfn>
-
-
- <td><abs_path>
-
- <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
-
- <td>—
-
- <td>—
-
- <td>If it has no leading U+002F SOLIDUS ("<code title="">/</code>")
- character, prepend a U+002F SOLIDUS ("<code title="">/</code>")
- character to the new value
-
- <td>—
-
- <tr>
- <td><dfn id=search1 title=dom-uda-search><code>search</code></dfn>
-
- <td><query>
-
- <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
-
- <td>U+003F QUESTION MARK ("<code title="">?</code>")
-
- <td>—
-
- <td>Remove one leading U+003F QUESTION MARK ("<code title="">?</code>")
- character, if any
-
- <td>—
-
- <tr>
- <td><dfn id=hash0 title=dom-uda-hash><code>hash</code></dfn>
-
- <td><fragment>
-
- <td>Fragment identifier is longer than zero characters
-
- <td>U+0023 NUMBER SIGN ("<code title="">#</code>")
-
- <td>—
-
- <td>Remove one leading U+0023 NUMBER SIGN ("<code title="">#</code>")
- character, if any
-
- <td>—
- </table>
- <!--
- http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
- http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
- http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
--->
-
- <h3 id=navigating><span class=secno>4.6. </span>Navigating across documents</h3>
-
<p>Certain actions cause the <a href="#browsing0">browsing context</a> to
<dfn id=navigate>navigate</dfn>. For example, <a href="#following0"
title="following hyperlinks">following a hyperlink</a>, <span
@@ -26759,7 +25379,7 @@
</dl>
</ol>
- <h4 id=read-html><span class=secno>4.6.1. </span><dfn id=page-load
+ <h4 id=read-html><span class=secno>4.4.1. </span><dfn id=page-load
title=navigate-html>Page load processing model for HTML files</dfn></h4>
<p>When an HTML document is to be loaded in a <a href="#browsing0">browsing
@@ -26785,7 +25405,7 @@
the page has finished parsing, the user agent must <a
href="#update0">update the session history with the new page</a>.
- <h4 id=read-xml><span class=secno>4.6.2. </span><dfn id=page-load0
+ <h4 id=read-xml><span class=secno>4.4.2. </span><dfn id=page-load0
title=navigate-xml>Page load processing model for XML files</dfn></h4>
<p>When faced with displaying an XML file inline, user agents must first
@@ -26816,7 +25436,7 @@
<p>Error messages from the parse process (e.g. namespace well-formedness
errors) may be reported inline by mutating the <code>Document</code>.
- <h4 id=read-text><span class=secno>4.6.3. </span><dfn id=page-load1
+ <h4 id=read-text><span class=secno>4.4.3. </span><dfn id=page-load1
title=navigate-text>Page load processing model for text files</dfn></h4>
<p>When a plain text document is to be loaded in a <a
@@ -26851,7 +25471,7 @@
binding, providing script, giving the document a <code><a
href="#title1">title</a></code>, etc.
- <h4 id=read-image><span class=secno>4.6.4. </span><dfn id=page-load2
+ <h4 id=read-image><span class=secno>4.4.4. </span><dfn id=page-load2
title=navigate-image>Page load processing model for images</dfn></h4>
<p>When an image resource is to be loaded in a <a
@@ -26882,7 +25502,7 @@
binding, to provide a script, to give the document a <code><a
href="#title1">title</a></code>, etc.
- <h4 id=read-plugin><span class=secno>4.6.5. </span><dfn id=page-load3
+ <h4 id=read-plugin><span class=secno>4.4.5. </span><dfn id=page-load3
title=navigate-plugin>Page load processing model for content that uses
plugins</dfn></h4>
@@ -26914,7 +25534,7 @@
XBL binding, or to give the document a <code><a
href="#title1">title</a></code>.
- <h4 id=non-DOM-inline-content><span class=secno>4.6.6. </span>Page load
+ <h4 id=non-DOM-inline-content><span class=secno>4.4.6. </span>Page load
processing model for inline content that doesn't have a DOM</h4>
<p>When the user agent is to <dfn id=display>display a user agent page
@@ -26935,7 +25555,7 @@
the page has been completely set up, the user agent must <a
href="#update0">update the session history with the new page</a>.
- <h4 id=scroll-to-fragid><span class=secno>4.6.7. </span><dfn id=scrolling0
+ <h4 id=scroll-to-fragid><span class=secno>4.4.7. </span><dfn id=scrolling0
title=navigate-fragid>Scrolling to a fragment identifier</dfn></h4>
<p>When a user agent is supposed to scroll for a fragment identifier, then
@@ -26957,7 +25577,7 @@
the document</dfn>" from a frag id -- id="", name="", XPointer, etc;
missing IDs (e.g. the infamous "#top")
- <h3 id=content-type-sniffing><span class=secno>4.7. </span>Determining the
+ <h3 id=content-type-sniffing><span class=secno>4.5. </span>Determining the
type of a new resource in a browsing context</h3>
<p class=warning>It is imperative that the rules in this section be
@@ -27054,7 +25674,7 @@
type</var>.
</ol>
- <h4 id=content-type0><span class=secno>4.7.1. </span><dfn
+ <h4 id=content-type0><span class=secno>4.5.1. </span><dfn
id=content-type4>Content-Type sniffing: text or binary</dfn></h4>
<ol>
@@ -27144,7 +25764,7 @@
<p>Otherwise, the sniffed type of the resource is "text/plain".
</ul>
- <h4 id=content-type1><span class=secno>4.7.2. </span><dfn
+ <h4 id=content-type1><span class=secno>4.5.2. </span><dfn
id=content-type5>Content-Type sniffing: unknown type</dfn></h4>
<ol>
@@ -27396,7 +26016,7 @@
determine that content is not HTML and thus safe from XSS attacks, but
then a user agent detects it as HTML anyway and allows script to execute).
- <h4 id=content-type2><span class=secno>4.7.3. </span><dfn
+ <h4 id=content-type2><span class=secno>4.5.3. </span><dfn
id=content-type6>Content-Type sniffing: image</dfn></h4>
<p>If the first bytes of the file match one of the byte sequences in the
@@ -27458,7 +26078,7 @@
<p>Otherwise, the <i>sniffed type</i> of the resource is the same as its
<var title="">official type</var>.
- <h4 id=content-type3><span class=secno>4.7.4. </span><dfn
+ <h4 id=content-type3><span class=secno>4.5.4. </span><dfn
id=content-type7>Content-Type sniffing: feed or HTML</dfn></h4>
<!-- mostly based on:
http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx
@@ -27628,7 +26248,7 @@
this algorithm and the algorithm for detecting the character encoding of
HTML documents in parallel.
- <h4 id=content-type><span class=secno>4.7.5. </span>Content-Type metadata</h4>
+ <h4 id=content-type><span class=secno>4.5.5. </span>Content-Type metadata</h4>
<p>What explicit <dfn id=content-type8 title=Content-Type>Content-Type
metadata</dfn> is associated with the resource (the resource's type
@@ -27712,7 +26332,7 @@
</dl>
</ol>
- <h3 id=user-prompts><span class=secno>4.8. </span>User prompts</h3>
+ <h3 id=user-prompts><span class=secno>4.6. </span>User prompts</h3>
<p>The <dfn id=alert title=dom-alert><code>alert(<var
title="">message</var>)</code></dfn> method, when invoked, must show the
@@ -27749,9 +26369,9 @@
<em>always</em> offering the user with the opportunity to convert the
document to whatever media the user might want.)
- <h3 id=scripting><span class=secno>4.9. </span>Scripting</h3>
+ <h3 id=scripting><span class=secno>4.7. </span>Scripting</h3>
- <h4 id=running><span class=secno>4.9.1. </span>Running executable code</h4>
+ <h4 id=running><span class=secno>4.7.1. </span>Running executable code</h4>
<p>Various mechanisms can cause author-provided executable code to run in
the context of a document. These mechanisms include, but are probably not
@@ -27785,7 +26405,7 @@
title="User agents with no scripting support">user agent with no scripting
support</a> for the purposes of conformance.
- <h4 id=origin><span class=secno>4.9.2. </span>Origin</h4>
+ <h4 id=origin><span class=secno>4.7.2. </span>Origin</h4>
<!-- Hallowed are the Ori -->
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=346659
@@ -27887,11 +26507,11 @@
kill multi-homed systems like GMail. Should we do something like have a
DNS record say whether or not to include the IP in the origin for a host?
- <h4 id=security3><span class=secno>4.9.3. </span>Security exceptions</h4>
+ <h4 id=security3><span class=secno>4.7.3. </span>Security exceptions</h4>
<p class=big-issue>Define <dfn id=security8>security exception</dfn>.
- <h4 id=javascript-protocol><span class=secno>4.9.4. </span><dfn
+ <h4 id=javascript-protocol><span class=secno>4.7.4. </span><dfn
id=the-javascript title="javascript protocol">The <code
title="">javascript:</code> protocol</dfn></h4>
@@ -27966,7 +26586,7 @@
context</a>.</p>
</div>
- <h4 id=events><span class=secno>4.9.5. </span>Events</h4>
+ <h4 id=events><span class=secno>4.7.5. </span>Events</h4>
<p class=big-issue>We need to define how to handle events that are to be
fired on a Document that is no longer the active document of its browsing
@@ -27977,7 +26597,7 @@
element section, which says scripts don't run when the document isn't
active.
- <h5 id=event-handler-attributes><span class=secno>4.9.5.1. </span>Event
+ <h5 id=event-handler-attributes><span class=secno>4.7.5.1. </span>Event
handler attributes</h5>
<p><a href="#html-elements">HTML elements</a> can have <dfn id=event1>event
@@ -28364,7 +26984,7 @@
set to invoke the function associated with the event handler attribute
otherwise.
- <h5 id=event><span class=secno>4.9.5.2. </span>Event firing</h5>
+ <h5 id=event><span class=secno>4.7.5.2. </span>Event firing</h5>
<p class=big-issue>maybe this should be moved higher up (terminology?
conformance? DOM?) Also, the whole terminology thing should be changed so
@@ -28451,7 +27071,7 @@
actions are defined in terms of <em>any</em> event of the right type on
that element, not those that are dispatched in expected ways.
- <h5 id=events0><span class=secno>4.9.5.3. </span>Events and the <code><a
+ <h5 id=events0><span class=secno>4.7.5.3. </span>Events and the <code><a
href="#window">Window</a></code> object</h5>
<p>When an event is dispatched at a DOM node in a <code>Document</code> in
@@ -28470,7 +27090,7 @@
bubbling has been prevented.
</ol>
- <h5 id=runtime-script-errors><span class=secno>4.9.5.4. </span>Runtime
+ <h5 id=runtime-script-errors><span class=secno>4.7.5.4. </span>Runtime
script errors</h5>
<p><em>This section only applies to user agents that support scripting in
@@ -28518,7 +27138,7 @@
<p>The initial value of <code title=handler-onerror><a
href="#onerror">onerror</a></code> must be <code>undefined</code>.
- <h3 id=browser><span class=secno>4.10. </span>Browser state</h3>
+ <h3 id=browser><span class=secno>4.8. </span>Browser state</h3>
<p>The <dfn id=navigator title=dom-navigator><code>navigator</code></dfn>
attribute of the <code><a href="#window">Window</a></code> interface must
@@ -28536,7 +27156,7 @@
<!-- XXX there are other attributes! -->};</pre>
<!-- also, see window.external.AddSearchProvider() and similar DOM APIs from IE -->
- <h4 id=offline><span class=secno>4.10.1. </span>Offline Web applications</h4>
+ <h4 id=offline><span class=secno>4.8.1. </span>Offline Web applications</h4>
<p>The <dfn id=navigator.online
title=dom-navigator-onLine><code>navigator.onLine</code></dfn> attribute
@@ -28562,7 +27182,7 @@
object.)</p>
<!-- XXX ononline onoffline need to be defined -->
- <h4 id=custom-handlers><span class=secno>4.10.2. </span>Custom protocol and
+ <h4 id=custom-handlers><span class=secno>4.8.2. </span>Custom protocol and
content handlers</h4>
<p>The <dfn id=registerprotocolhandler
@@ -28705,7 +27325,7 @@
non-idempotent transaction), as the remote site would not be able to fetch
the same data.
- <h5 id=security4><span class=secno>4.10.2.1. </span>Security and privacy</h5>
+ <h5 id=security4><span class=secno>4.8.2.1. </span>Security and privacy</h5>
<p>These mechanisms can introduce a number of concerns, in particular
privacy concerns.
@@ -28783,7 +27403,7 @@
trust the third-party handler, a decision many users are unable to make or
even understand).
- <h5 id=sample-handler-impl><span class=secno>4.10.2.2. </span>Sample user
+ <h5 id=sample-handler-impl><span class=secno>4.8.2.2. </span>Sample user
interface</h5>
<p><em>This section is non-normative.</em>
@@ -28866,10 +27486,10 @@
would work equivalently, but for unknown MIME types instead of unknown
protocols.
- <h3 id=storage><span class=secno>4.11. </span>Client-side session and
+ <h3 id=storage><span class=secno>4.9. </span>Client-side session and
persistent storage of name/value pairs</h3>
- <h4 id=introduction1><span class=secno>4.11.1. </span>Introduction</h4>
+ <h4 id=introduction1><span class=secno>4.9.1. </span>Introduction</h4>
<p><em>This section is non-normative.</em>
@@ -28977,7 +27597,7 @@
To store structured data in a storage area, you must first convert it to a
string.
- <h4 id=the-storage><span class=secno>4.11.2. </span>The <code><a
+ <h4 id=the-storage><span class=secno>4.9.2. </span>The <code><a
href="#storage2">Storage</a></code> interface</h4>
<pre class=idl>
@@ -29115,7 +27735,7 @@
href="#setitem">setItem()</a></code> method with the property's name as
the first argument and the given value as the second argument.
- <h4 id=the-storageitem><span class=secno>4.11.3. </span>The <code><a
+ <h4 id=the-storageitem><span class=secno>4.9.3. </span>The <code><a
href="#storageitem">StorageItem</a></code> interface</h4>
<p>Items in <code><a href="#storage2">Storage</a></code> objects are
@@ -29181,7 +27801,7 @@
the key/value pair would no longer appear in the appropriate <code><a
href="#storage2">Storage</a></code> object.
- <h4 id=the-sessionstorage><span class=secno>4.11.4. </span>The <code
+ <h4 id=the-sessionstorage><span class=secno>4.9.4. </span>The <code
title=dom-sessionStorage><a
href="#sessionstorage">sessionStorage</a></code> attribute</h4>
@@ -29254,7 +27874,7 @@
title=event-storage><a href="#storage3">storage</a></code> event must be
fired, as <a href="#storage3" title=event-storage>described below</a>.
- <h4 id=the-globalstorage><span class=secno>4.11.5. </span>The <code
+ <h4 id=the-globalstorage><span class=secno>4.9.5. </span>The <code
title=dom-globalStorage><a href="#globalstorage">globalStorage</a></code>
attribute</h4>
@@ -29413,7 +28033,7 @@
global storage area is notified of the change.</p>
</div>
- <h4 id=the-storage0><span class=secno>4.11.6. </span>The <code
+ <h4 id=the-storage0><span class=secno>4.9.6. </span>The <code
title=event-storage><a href="#storage3">storage</a></code> event</h4>
<p>The <dfn id=storage3 title=event-storage><code>storage</code></dfn>
@@ -29470,10 +28090,10 @@
"<code>#session</code>" if it was a session storage area.</p>
<!-- XXX onstorage should be defined -->
- <h4 id=miscellaneous0><span class=secno>4.11.7. </span>Miscellaneous
+ <h4 id=miscellaneous0><span class=secno>4.9.7. </span>Miscellaneous
implementation requirements for storage areas</h4>
- <h5 id=disk-space><span class=secno>4.11.7.1. </span>Disk space</h5>
+ <h5 id=disk-space><span class=secno>4.9.7.1. </span>Disk space</h5>
<p>User agents should limit the total amount of space allowed for a domain
based on the domain of the page setting the value.
@@ -29505,7 +28125,7 @@
Implementation feedback is welcome and will be used to update this
suggestion in future.
- <h5 id=threads0><span class=secno>4.11.7.2. </span>Threads</h5>
+ <h5 id=threads0><span class=secno>4.9.7.2. </span>Threads</h5>
<p>Multiple browsing contexts must be able to access the global storage
areas simultaneously in a predictable manner. Scripts must not be able to
@@ -29529,9 +28149,9 @@
specification does not require any particular implementation strategy, so
long as the requirement above is met.
- <h4 id=security5><span class=secno>4.11.8. </span>Security and privacy</h4>
+ <h4 id=security5><span class=secno>4.9.8. </span>Security and privacy</h4>
- <h5 id=user-tracking><span class=secno>4.11.8.1. </span>User tracking</h5>
+ <h5 id=user-tracking><span class=secno>4.9.8.1. </span>User tracking</h5>
<p>A third-party advertiser (or any entity capable of getting content
distributed to multiple sites) could use a unique identifier stored in its
@@ -29665,7 +28285,7 @@
headers and configuration settings) to combine separate sessions into
coherent user profiles.
- <h5 id=cookie><span class=secno>4.11.8.2. </span>Cookie resurrection</h5>
+ <h5 id=cookie><span class=secno>4.9.8.2. </span>Cookie resurrection</h5>
<p>If the user interface for persistent storage presents data in the
persistent storage feature separately from data in HTTP session cookies,
@@ -29673,7 +28293,7 @@
allow sites to use the two features as redundant backup for each other,
defeating a user's attempts to protect his privacy.
- <h5 id=integrity><span class=secno>4.11.8.3. </span>Integrity of "public"
+ <h5 id=integrity><span class=secno>4.9.8.3. </span>Integrity of "public"
storage areas</h5>
<p>Since the "<a href="#public0" title="public storage area">public</a>"
@@ -29687,7 +28307,7 @@
must not trust information stored in "<a href="#public0" title="public
storage area">public</a>" global storage areas.
- <h5 id=cross-protocol><span class=secno>4.11.8.4. </span>Cross-protocol and
+ <h5 id=cross-protocol><span class=secno>4.9.8.4. </span>Cross-protocol and
cross-port attacks</h5>
<p>This API makes no distinction between content served over HTTP, FTP, or
@@ -29727,7 +28347,7 @@
with no further interaction. How about putting the port number at the end
of the string being compared? (Implicitly.)
- <h5 id=dns-spoofing><span class=secno>4.11.8.5. </span>DNS spoofing attacks</h5>
+ <h5 id=dns-spoofing><span class=secno>4.9.8.5. </span>DNS spoofing attacks</h5>
<p>Because of the potential for DNS spoofing attacks, one cannot guarentee
that a host claiming to be in a certain domain really is from that domain.
@@ -29741,7 +28361,7 @@
condition, data stored by scripts in secure contexts default to being
marked as "safe only for secure content".)
- <h5 id=cross-directory><span class=secno>4.11.8.6. </span>Cross-directory
+ <h5 id=cross-directory><span class=secno>4.9.8.6. </span>Cross-directory
attacks</h5>
<p>Different authors sharing one host name, for example users hosting
@@ -29755,7 +28375,7 @@
usual DOM scripting security model would make it trivial to bypass this
protection and access the data from any path.
- <h5 id=public><span class=secno>4.11.8.7. </span>Public storage areas
+ <h5 id=public><span class=secno>4.9.8.7. </span>Public storage areas
corresponding to hosts</h5>
<p>If a "<a href="#public0" title="public storage area">public</a>" global
@@ -29771,9 +28391,9 @@
to "<a href="#public0" title="public storage area">public</a>" global
storage areas from accessing any storage areas other than their own.
- <h5 id=storage0><span class=secno>4.11.8.8. </span>Storage areas in the
- face of untrusted higher-level domains that do not correspond to public
- storage areas</h5>
+ <h5 id=storage0><span class=secno>4.9.8.8. </span>Storage areas in the face
+ of untrusted higher-level domains that do not correspond to public storage
+ areas</h5>
<p>Authors should not store sensitive data using the global storage APIs if
there are hosts with fully-qualified domain names that are subsets of
@@ -29783,8 +28403,8 @@
storage area if he does not trust the host that runs
<code>example.net</code>.
- <h5 id=storage1><span class=secno>4.11.8.9. </span>Storage areas in the
- face of untrusted subdomains</h5>
+ <h5 id=storage1><span class=secno>4.9.8.9. </span>Storage areas in the face
+ of untrusted subdomains</h5>
<p>If an author publishing content on one host, e.g.
<code>example.com</code>, wishes to use the <code
@@ -29795,7 +28415,7 @@
accessible only to that host (and its parent domains), and not to any of
the real subdomains (e.g. <code>upload.example.com</code>).
- <h5 id=implementation><span class=secno>4.11.8.10. </span>Implementation
+ <h5 id=implementation><span class=secno>4.9.8.10. </span>Implementation
risks</h5>
<p>The two primary risks when implementing this persistent storage feature
@@ -29835,13 +28455,13 @@
list of "<a href="#public0" title="public storage area">public</a>"
domains, and apply the restrictions described above.
- <h3 id=sql><span class=secno>4.12. </span>Client-side database storage</h3>
+ <h3 id=sql><span class=secno>4.10. </span>Client-side database storage</h3>
- <h4 id=introduction2><span class=secno>4.12.1. </span>Introduction</h4>
+ <h4 id=introduction2><span class=secno>4.10.1. </span>Introduction</h4>
<p class=big-issue>...
- <h4 id=databases><span class=secno>4.12.2. </span>Databases</h4>
+ <h4 id=databases><span class=secno>4.10.2. </span>Databases</h4>
<p>Each <i><a href="#origin0">origin</a></i> has an associated set of
databases. Each database has a name and a current version. There is no way
@@ -29907,7 +28527,7 @@
<code><a href="#database0">Database</a></code> object on which the
attribute was called to the new value.
- <h4 id=executing><span class=secno>4.12.3. </span>Executing SQL statements</h4>
+ <h4 id=executing><span class=secno>4.10.3. </span>Executing SQL statements</h4>
<p>Once a <code><a href="#database0">Database</a></code> object has been
obtained, an author can interact with the database using the <code
@@ -30041,7 +28661,7 @@
<p class=note>A future version of this specification may define the exact
SQL subset required in more detail.
- <h4 id=database><span class=secno>4.12.4. </span>Database query results</h4>
+ <h4 id=database><span class=secno>4.10.4. </span>Database query results</h4>
<p>The <code title=dom-database-executeSql><a
href="#executesql">executeSql()</a></code> method invokes its callback
@@ -30125,7 +28745,7 @@
language, describing the error encountered by the last statement. If there
was no error, the attribute's value must be the empty string.
- <h4 id=privacy><span class=secno>4.12.5. </span>Privacy</h4>
+ <h4 id=privacy><span class=secno>4.10.5. </span>Privacy</h4>
<p>In contrast with the <code title=dom-globalStorage><a
href="#globalstorage">globalStorage</a></code> feature, which
@@ -30140,9 +28760,9 @@
way as cookies for the purposes of user interfaces, to reduce the risk of
using this feature for cookie resurrection.
- <h4 id=security6><span class=secno>4.12.6. </span>Security</h4>
+ <h4 id=security6><span class=secno>4.10.6. </span>Security</h4>
- <h5 id=user-agents><span class=secno>4.12.6.1. </span>User agents</h5>
+ <h5 id=user-agents><span class=secno>4.10.6.1. </span>User agents</h5>
<p>User agent implementors are strongly encouraged to audit all their
supported SQL statements for security implications. For example, <code
@@ -30155,7 +28775,7 @@
disk representation of the data, as all data in ECMAScript is implicitly
UTF-16.
- <h5 id=sql-injection><span class=secno>4.12.6.2. </span>SQL injection</h5>
+ <h5 id=sql-injection><span class=secno>4.10.6.2. </span>SQL injection</h5>
<p>Authors are strongly recommended to make use of the <code
title="">?</code> placeholder feature of the <code
@@ -30163,6 +28783,1386 @@
href="#executesql">executeSql()</a></code> method, and to never construct
SQL statements on the fly.
+ <h3 id=links><span class=secno>4.11. </span>Links</h3>
+
+ <h4 id=hyperlink><span class=secno>4.11.1. </span>Hyperlink elements</h4>
+
+ <p>The <code><a href="#a">a</a></code>, <code><a
+ href="#area">area</a></code>, and <code><a href="#link">link</a></code>
+ elements can, in certain situations described in the definitions of those
+ elements, represent <dfn id=hyperlinks title=hyperlink>hyperlinks</dfn>.
+
+ <p>The <dfn id=href6 title=attr-hyperlink-href><code>href</code></dfn>
+ attribute on a hyperlink element must have a value that is a URI (or IRI).
+ This URI is the <em>destination resource</em> of the hyperlink.
+
+ <div class=note>
+ <p>The <code title=attr-hyperlink-href><a href="#href6">href</a></code>
+ attribute on <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements is not required; when those
+ elements do not have <code title=attr-hyperlink-href><a
+ href="#href6">href</a></code> attributes they do not represent
+ hyperlinks.</p>
+
+ <p>The <code title=attr-link-href><a href="#href1">href</a></code>
+ attribute on the <code><a href="#link">link</a></code> element
+ <em>is</em> required, but whether a <code><a href="#link">link</a></code>
+ element represents a hyperlink or not depends on the value of the <code
+ title=attr-link-rel><a href="#rel">rel</a></code> attribute of that
+ element.</p>
+ </div>
+
+ <p>The <dfn id=target3
+ title=attr-hyperlink-target><code>target</code></dfn> attribute, if
+ present, must be a <a href="#valid8">valid browsing context name</a>. User
+ agents use this name when <a href="#following0">following hyperlinks</a>.
+
+ <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn>
+ attribute, if present, gives the URIs of the resources that are interested
+ in being notified if the user follows the hyperlink. The value must be a
+ space separated list of one or more URIs (or IRIs). The value is used by
+ the user agent when <a href="#following0">following hyperlinks</a>.
+
+ <p>For <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements that represent hyperlinks, the
+ relationship between the document containing the hyperlink and the
+ destination resource indicated by the hyperlink is given by the value of
+ the element's <dfn id=rel3 title=attr-hyperlink-rel><code>rel</code></dfn>
+ attribute, which must be an <a href="#unordered">unordered set of
+ space-separated tokens</a>. The <a href="#linkTypes">allowed values and
+ their meanings</a> are defined below. The <code
+ title=attr-hyperlink-rel><a href="#rel3">rel</a></code> attribute has no
+ default value. If the attribute is omitted or if none of the values in the
+ attribute are recognised by the UA, then the document has no particular
+ relationship with the destination resource other than there being a
+ hyperlink between the two.
+
+ <p>The <dfn id=media12 title=attr-hyperlink-media><code>media</code></dfn>
+ attribute describes for which media the target document was designed. It
+ is purely advisory. The value must be a valid media query. <a
+ href="#refsMQ">[MQ]</a> The default, if the <code
+ title=attr-hyperlink-media><a href="#media12">media</a></code> attribute
+ is omitted or has an invalid value, is <code>all</code>.
+
+ <p>The <dfn id=hreflang3
+ title=attr-hyperlink-hreflang><code>hreflang</code></dfn> attribute on
+ hyperlink elements, if present, gives the language of the linked resource.
+ It is purely advisory. The value must be a valid RFC 3066 language code.
+ <a href="#refsRFC3066">[RFC3066]</a> User agents must not consider this
+ attribute authoritative — upon fetching the resource, user agents
+ must only use language information associated with the resource to
+ determine its language, not metadata included in the link to the resource.
+
+ <p>The <dfn id=type17 title=attr-hyperlink-type><code>type</code></dfn>
+ attribute, if present, gives the MIME type of the linked resource. It is
+ purely advisory. The value must be a valid MIME type, optionally with
+ parameters. <a href="#refsRFC2046">[RFC2046]</a> User agents must not
+ consider the <code title=attr-hyperlink-type><a
+ href="#type17">type</a></code> attribute authoritative — upon
+ fetching the resource, user agents must not use metadata included in the
+ link to the resource to determine its type.
+
+ <h4 id=following><span class=secno>4.11.2. </span><dfn
+ id=following0>Following hyperlinks</dfn></h4>
+
+ <p>When a user <em>follows a hyperlink</em>, the user agent must <a
+ href="#navigate">navigate</a> a <a href="#browsing0">browsing context</a>
+ to the URI of the hyperlink.
+
+ <p>The URI of the hyperlink is URI given by resolving the the <code
+ title=attr-hyperlink-href><a href="#href6">href</a></code> attribute of
+ that hyperlink relative to the hyperlink's element. In the case of
+ server-side image maps, the URI of the hyperlink must further have its
+ <var><a href="#hyperlink2">hyperlink suffix</a></var> appended to it.
+
+ <p>If the user indicated a specific browsing context when following the
+ hyperlink, or if the user agent is configured to follow hyperlinks by
+ navigating a particular browsing context, then that must be the browsing
+ context that is navigated.
+
+ <p>Otherwise, if the hyperlink element is an <code><a
+ href="#a">a</a></code> or <code><a href="#area">area</a></code> element
+ that has a <code title=attr-hyperlink-target><a
+ href="#target3">target</a></code> attribute, then the browsing context
+ that is navigated must be chosen by applying <a href="#the-rules">the
+ rules for chosing a browsing context given a browsing context name</a>,
+ using the value of the <code title=attr-hyperlink-target><a
+ href="#target3">target</a></code> attribute as the browsing context name.
+ If these rules result in the creation of a new <a
+ href="#browsing0">browsing context</a>, it must be navigated with <a
+ href="#replacement">replacement enabled</a>.
+
+ <p>Otherwise, if the hyperlink element is a <a href="#sidebar0"
+ title=rel-sidebar-hyperlink>sidebar hyperlink</a> and the user agent
+ implements a feature that can be considered a secondary browsing context,
+ such a secondary browsing context may be selected as the browsing context
+ to be navigated.
+
+ <p>Otherwise, if the hyperlink element is an <code><a
+ href="#a">a</a></code> or <code><a href="#area">area</a></code> element
+ with no <code title=attr-hyperlink-target><a
+ href="#target3">target</a></code> attribute, but one of the child nodes of
+ <a href="#the-head0">the <code>head</code> element</a> is a <code><a
+ href="#base">base</a></code> element with a <code
+ title=attr-base-target><a href="#target">target</a></code> attribute, then
+ the browsing context that is navigated must be chosen by applying <a
+ href="#the-rules">the rules for chosing a browsing context given a
+ browsing context name</a>, using the value of the <code
+ title=attr-base-target><a href="#target">target</a></code> attribute of
+ the first such <code><a href="#base">base</a></code> element as the
+ browsing context name. If these rules result in the creation of a new <a
+ href="#browsing0">browsing context</a>, it must be navigated with <a
+ href="#replacement">replacement enabled</a>.
+
+ <p>Otherwise, the browsing context that must be navigated is the same
+ browsing context as the one which the hyperlink element itself is in.
+
+ <h5 id=hyperlink0><span class=secno>4.11.2.1. </span>Hyperlink auditing</h5>
+
+ <p>If an <code><a href="#a">a</a></code> or <code><a
+ href="#area">area</a></code> hyperlink element has a <code
+ title=attr-hyperlink-ping><a href="#ping">ping</a></code> attribute and
+ the user follows the hyperlink, the user agent must take the <code
+ title=attr-hyperlink-ping><a href="#ping">ping</a></code> attribute's
+ value, strip leading and trailing <a href="#space" title="space
+ character">spaces</a>, split the value on sequences of spaces, treat each
+ resulting part as a URI (resolving relative URIs according to element's
+ base URI) and then should send a request to each of the resulting URIs.
+ This may be done in parallel with the primary request, and is independent
+ of the result of that request.
+
+ <p>User agents should allow the user to adjust this behaviour, for example
+ in conjunction with a setting that disables the sending of HTTP Referrer
+ headers. Based on the user's preferences, UAs may either <a
+ href="#ignored">ignore</a> the <code title=attr-hyperlink-ping><a
+ href="#ping">ping</a></code> attribute altogether, or selectively ignore
+ URIs in the list (e.g. ignoring any third-party URIs).
+
+ <p>For URIs that are HTTP URIs, the requests must be performed using the
+ POST method (with an empty entity body in the request). User agents must
+ ignore any entity bodies returned in the responses, but must, unless
+ otherwise specified by the user, honour the HTTP headers — in
+ particular, HTTP cookie headers. <a href="#refsRFC2965">[RFC2965]</a>
+
+ <p class=note>To save bandwidth, implementors might wish to consider
+ omitting optional headers such as <code>Accept</code> from these requests.
+
+ <p>When the <code title=attr-hyperlink-ping><a href="#ping">ping</a></code>
+ attribute is present, user agents should clearly indicate to the user that
+ following the hyperlink will also cause secondary requests to be sent in
+ the background, possibly including listing the actual target URIs.
+
+ <div class=note>
+ <p>The <code title=attr-hyperlink-ping><a href="#ping">ping</a></code>
+ attribute is redundant with pre-existing technologies like HTTP redirects
+ and JavaScript in allowing Web pages to track which off-site links are
+ most popular or allowing advertisers to track click-through rates.</p>
+
+ <p>However, the <code title=attr-hyperlink-ping><a
+ href="#ping">ping</a></code> attribute provides these advantages to the
+ user over those alternatives:</p>
+
+ <ul>
+ <li>It allows the user to see the final target URI unobscured.
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.
+
+ <li>It allows the paranoid user to disable the notifications without
+ losing the underlying link functionality.
+
+ <li>It allows the UA to optimise the use of available network bandwidth
+ so that the target page loads faster.
+ </ul>
+
+ <p>Thus, while it is possible to track users without this feature, authors
+ are encouraged to use the <code title=attr-hyperlink-ping><a
+ href="#ping">ping</a></code> attribute so that the user agent can improve
+ <!-- XXX optimise? --> the user experience.</p>
+ <!--
+ XXX need a better way to end that sentence. It's what I mean, but
+ it sounds kooky. -->
+ </div>
+
+ <h4 id=linkTypes><span class=secno>4.11.3. </span>Link types</h4>
+
+ <p>The following table summarises the link types that are defined by this
+ specification. This table is non-normative; the actual definitions for the
+ link types are given in the next few sections.
+
+ <p>In this section, the term <em>referenced document</em> refers to the
+ resource identified by the element representing the link, and the term
+ <em>current document</em> refers to the resource within which the element
+ representing the link finds itself.
+
+ <p>To determine which link types apply to a <code><a
+ href="#link">link</a></code>, <code><a href="#a">a</a></code>, or <code><a
+ href="#area">area</a></code> element, the element's <code
+ title="">rel</code> attribute must be <a href="#split" title="split a
+ string on spaces">split on spaces</a>. The resulting tokens are the link
+ types that apply to that element.
+
+ <table>
+ <thead>
+ <tr>
+ <th rowspan=2>Link type
+
+ <th colspan=2>Effect on...
+
+ <th rowspan=2>Brief description
+
+ <tr>
+ <th><code><a href="#link">link</a></code>
+
+ <th><code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code>
+
+ <tbody>
+ <tr>
+ <td><code title=rel-alternate><a href="#alternate">alternate</a></code></td>
+ <!-- second most used <link rel> value -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives alternate representations of the current document.
+
+ <tr>
+ <td><code title=rel-archives><a href="#archives">archives</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Provides a link to a collection of records, documents, or other
+ materials of historical interest.
+
+ <tr>
+ <td><code title=rel-author><a href="#author">author</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives a link to the current document's author.
+
+ <tr>
+ <td><code title=rel-bookmark><a href="#bookmark">bookmark</a></code></td>
+ <!-- fourth most used <a rel> value -->
+
+ <td><em>not allowed</em>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives the permalink for the nearest ancestor section.
+
+ <tr>
+ <td><code title=rel-contact><a href="#contact">contact</a></code></td>
+ <!-- 8th most used <a rel> value -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives a link to contact information for the current document.
+
+ <tr>
+ <td><code title=rel-external><a href="#external">external</a></code></td>
+ <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
+
+ <td><em>not allowed</em>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the referenced document is not part of the same site
+ as the current document.
+
+ <tr>
+ <td><code title=rel-feed><a href="#feed">feed</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives the address of a syndication feed for the current document.
+
+ <tr>
+ <td><code title=rel-first><a href="#first">first</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document is a part of a series, and that
+ the first document in the series is the referenced document.
+
+ <tr>
+ <td><code title=rel-help><a href="#help">help</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Provides a link to context-sensitive help.
+
+ <tr>
+ <td><code title=rel-icon><a href="#icon3">icon</a></code></td>
+ <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
+
+ <td><a href="#links1" title="external resource link">External
+ Resource</a>
+
+ <td><em>not allowed</em>
+
+ <td>Imports an icon to represent the current document.
+
+ <tr>
+ <td><code title=rel-index><a href="#index">index</a></code></td>
+ <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives a link to the document that provides a table of contents or
+ index listing the current document.
+
+ <tr>
+ <td><code title=rel-last><a href="#last">last</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document is a part of a series, and that
+ the last document in the series is the referenced document.
+
+ <tr>
+ <td><code title=rel-license><a href="#license">license</a></code></td>
+ <!-- seventh most used <a rel> value -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document is covered by the copyright
+ license described by the referenced document.
+
+ <tr>
+ <td><code title=rel-next><a href="#next">next</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document is a part of a series, and that
+ the next document in the series is the referenced document.
+
+ <tr>
+ <td><code title=rel-nofollow><a href="#nofollow">nofollow</a></code></td>
+ <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
+
+ <td><em>not allowed</em>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document's original author or publisher
+ does not endorse the referenced document.
+
+ <tr>
+ <td><code title=rel-pingback><a href="#pingback">pingback</a></code>
+
+ <td><a href="#links1" title="external resource link">External
+ Resource</a>
+
+ <td><em>not allowed</em>
+
+ <td>Gives the address of the pingback server that handles pingbacks to
+ the current document.
+
+ <tr>
+ <td><code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
+
+ <td><a href="#links1" title="external resource link">External
+ Resource</a>
+
+ <td><em>not allowed</em>
+
+ <td>Specifies that the target resource should be pre-emptively cached.
+
+ <tr>
+ <td><code title=rel-prev><a href="#prev">prev</a></code></td>
+ <!-- prev is used more than previous -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Indicates that the current document is a part of a series, and that
+ the previous document in the series is the referenced document.
+
+ <tr>
+ <td><code title=rel-search><a href="#search0">search</a></code></td>
+ <!-- used quite a bit -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives a link to a resource that can be used to search through the
+ current document and its related pages.
+
+ <tr>
+ <td><code title=rel-stylesheet><a
+ href="#stylesheet">stylesheet</a></code></td>
+ <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
+
+ <td><a href="#links1" title="external resource link">External
+ Resource</a>
+
+ <td><em>not allowed</em>
+
+ <td>Imports a stylesheet.
+
+ <tr>
+ <td><code title=rel-sidebar><a href="#sidebar">sidebar</a></code></td>
+ <!-- used quite a bit -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Specifies that the referenced document, if retrieved, is intended to
+ be shown in the browser's sidebar (if it has one).
+
+ <tr>
+ <td><code title=rel-tag><a href="#tag">tag</a></code></td>
+ <!-- second and third most used <a rel> value (third is technically "category tag"). -->
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Gives a tag (identified by the given address) that applies to the
+ current document.
+
+ <tr>
+ <td><code title=rel-up><a href="#up">up</a></code>
+
+ <td><a href="#hyperlink1" title="hyperlink link">Hyperlink</a>
+
+ <td><a href="#hyperlinks">Hyperlink</a>
+
+ <td>Provides a link to a document giving the context for the current
+ document.
+ </table>
+
+ <p>Some of the types described below list synonyms for these values. These
+ are to be handled as specified by user agents, but must not be used in
+ documents.</p>
+ <!--XXX
+
+ issues for rel="", etc:
+ rel="alternate stylesheet"
+ rel="script"
+ rel="related" // see also
+ which relationship combinations are allowed
+ what multiple values might mean (multiple <a rel="top"> in the same document)
+ http://www.euronet.nl/~tekelenb/WWW/LINK/
+ http://shift.freezope.org/konq_rellinks/development_html
+ http://hixie.ch/specs/html/link/001
+ http://hixie.ch/specs/html/link/002
+ http://www.hixie.ch/specs/html/metadata
+ what UAs are supposed to do with this
+ do something about http://microformats.org/wiki/rel-enclosure
+
+mpt says:
+> "As with <a> elements, when <link> elements that use these relationships
+> are present, UAs should render them. As with <a> elements, when <link>
+> elements that use these relationships do not exist, UAs should not
+> render them. UAs should not make <link> rendering any easier to hide
+> than <a> rendering."
+
+for microformats (e.g. to refer to an hcard from an hcalendar):
+rel=xref
+<a> and <area> only
+The href attribute's value must start with a '#' character.
+Indicates an in-page cross-reference. For the purposes of data mining tools, the subtree rooted
+at the first element with the given ID must be treated as if it was cloned and replaced the <a> element.
+
+ -->
+
+ <h5 id=link-type><span class=secno>4.11.3.1. </span>Link type "<dfn
+ id=alternate title=rel-alternate><code>alternate</code></dfn>"</h5>
+
+ <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
+ keyword may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, if the <code
+ title=attr-link-rel><a href="#rel">rel</a></code> attribute does not also
+ contain the keyword <code title=rel-stylesheet><a
+ href="#stylesheet">stylesheet</a></code>, it creates a <a
+ href="#hyperlink1" title="hyperlink link">hyperlink</a>; but if it
+ <em>does</em> also contains the keyword <code title=rel-stylesheet><a
+ href="#stylesheet">stylesheet</a></code>, the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword instead modifies the
+ meaning of the <code title=rel-stylesheet><a
+ href="#stylesheet">stylesheet</a></code> keyword in the way described for
+ that keyword, and the rest of this subsection doesn't apply.
+
+ <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
+ keyword indicates that the referenced document is an alternate
+ representation of the current document.
+
+ <p>The nature of the referenced document is given by the <code
+ title=attr-hyperlink-media><a href="#media12">media</a></code>, <code
+ title=attr-hyperlink-hreflang><a href="#hreflang3">hreflang</a></code>,
+ and <code title=attr-hyperlink-type><a href="#type17">type</a></code>
+ attributes.
+
+ <p>If the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword is used with the <code
+ title=attr-hyperlink-media><a href="#media12">media</a></code> attribute,
+ it indicates that the referenced document is intended for use with the
+ media specified.
+
+ <p>If the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword is used with the <code
+ title=attr-hyperlink-hreflang><a href="#hreflang3">hreflang</a></code>
+ attribute, and that attribute's value differs from the <a
+ href="#root-element">root element</a>'s <a href="#language">language</a>,
+ it indicates that the referenced document is a translation.
+
+ <p>If the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword is used with the <code
+ title=attr-hyperlink-type><a href="#type17">type</a></code> attribute, it
+ indicates that the referenced document is a reformulation of the current
+ document in the specified format.
+
+ <p>The <code title=attr-hyperlink-media><a
+ href="#media12">media</a></code>, <code title=attr-hyperlink-hreflang><a
+ href="#hreflang3">hreflang</a></code>, and <code
+ title=attr-hyperlink-type><a href="#type17">type</a></code> attributes can
+ be combined when specified with the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword.
+
+ <div class=example>
+ <p>For example, the following link is a French translation that uses the
+ PDF format:</p>
+
+ <pre><link rel=alternate type=application/pdf hreflang=fr href=manual-fr></pre>
+ </div>
+
+ <p>If the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword is used with the <code
+ title=attr-hyperlink-type><a href="#type17">type</a></code> attribute set
+ to the value <code title="">application/rss+xml</code> or the value <code
+ title="">application/atom+xml</code>, then the user agent must treat the
+ link as it would if it had the <code title=rel-feed><a
+ href="#feed">feed</a></code> keyword specified as well.
+
+ <p>The <code title=rel-alternate><a href="#alternate">alternate</a></code>
+ link relationship is transitive — that is, if a document links to
+ two other documents with the link type "<code title=rel-alternate><a
+ href="#alternate">alternate</a></code>", then, in addition to implying
+ that those documents are alternative representations of the first
+ document, it is also implying that those two documents are alternative
+ representations of each other.
+
+ <h5 id=link-type0><span class=secno>4.11.3.2. </span>Link type "<dfn
+ id=archives title=rel-archives><code>archives</code></dfn>"</h5>
+
+ <p>The <code title=rel-archives><a href="#archives">archives</a></code>
+ keyword may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-archives><a href="#archives">archives</a></code>
+ keyword indicates that the referenced document describes a collection of
+ records, documents, or other materials of historical interest.
+
+ <p class=example>A blog's index page could link to an index of the blog's
+ past posts with <code title="">rel="archives"</code>.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keyword "<code title="">archive</code>" like the <code
+ title=rel-archives><a href="#archives">archives</a></code> keyword.
+
+ <h5 id=link-type1><span class=secno>4.11.3.3. </span>Link type "<dfn
+ id=author title=rel-author><code>author</code></dfn>"</h5>
+
+ <p>The <code title=rel-author><a href="#author">author</a></code> keyword
+ may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>For <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements, the <code title=rel-author><a
+ href="#author">author</a></code> keyword indicates that the referenced
+ document provides further information about the author of the section that
+ the element defining the hyperlink <a href="#applyToSection">applies</a>
+ to.
+
+ <p>For <code><a href="#link">link</a></code> elements, the <code
+ title=rel-author><a href="#author">author</a></code> keyword indicates
+ that the referenced document provides further information about the author
+ for the page as a whole.
+
+ <p class=note>The "referenced document" can be, and often is, a <code
+ title="">mailto:</code> URI giving the e-mail address of the author. <a
+ href="#refsMAILTO">[MAILTO]</a>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code> elements
+ that have a <code title="">rev</code> attribute with the value
+ "<code>made</code>" as having the <code title=rel-author><a
+ href="#author">author</a></code> keyword specified as a link relationship.
+
+ <h5 id=link-type2><span class=secno>4.11.3.4. </span>Link type "<dfn
+ id=bookmark title=rel-bookmark><code>bookmark</code></dfn>"</h5>
+
+ <p>The <code title=rel-bookmark><a href="#bookmark">bookmark</a></code>
+ keyword may be used with <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements.
+
+ <p>The <code title=rel-bookmark><a href="#bookmark">bookmark</a></code>
+ keyword gives a permalink for the nearest ancestor <code><a
+ href="#article">article</a></code> element of the linking element in
+ question, or of <a href="#associatedSection">the section the linking
+ element is most closely associated with</a>, if there are no ancestor
+ <code><a href="#article">article</a></code> elements.
+
+ <div class=example>
+ <p>The following snippet has three permalinks. A user agent could
+ determine which permalink applies to which part of the spec by looking at
+ where the permalinks are given.</p>
+
+ <pre> ...
+ <body>
+ <h1>Example of permalinks</h1>
+ <div id="a">
+ <h2>First example</h2>
+ <p><a href="a.html" rel="bookmark">This</a> permalink applies to
+ only the content from the first H2 to the second H2. The DIV isn't
+ exactly that section, but it roughly corresponds to it.</p>
+ </div>
+ <h2>Second example</h2>
+ <article id="b">
+ <p><a href="b.html" rel="bookmark">This</a> permalink applies to
+ the outer ARTICLE element (which could be, e.g., a blog post).</p>
+ <article id="c">
+ <p><a href="c.html" rel="bookmark">This</a> permalink applies to
+ the inner ARTICLE element (which could be, e.g., a blog comment).</p>
+ </article>
+ </article>
+ </body>
+ ...</pre>
+ </div>
+
+ <h5 id=link-type3><span class=secno>4.11.3.5. </span>Link type "<dfn
+ id=contact title=rel-contact><code>contact</code></dfn>"</h5>
+
+ <p>The <code title=rel-contact><a href="#contact">contact</a></code>
+ keyword may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>For <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements, the <code title=rel-contact><a
+ href="#contact">contact</a></code> keyword indicates that the referenced
+ document provides further contact information for the section that the
+ element defining the hyperlink <a href="#applyToSection">applies</a> to.
+
+ <p>User agents must treat any hyperlink in an <code><a
+ href="#address">address</a></code> element as having the <code
+ title=rel-contact><a href="#contact">contact</a></code> link type
+ specified.
+
+ <p>For <code><a href="#link">link</a></code> elements, the <code
+ title=rel-contact><a href="#contact">contact</a></code> keyword indicates
+ that the referenced document provides further contact information for the
+ page as a whole.
+
+ <h5 id=link-type4><span class=secno>4.11.3.6. </span>Link type "<dfn
+ id=external title=rel-external><code>external</code></dfn>"</h5>
+
+ <p>The <code title=rel-external><a href="#external">external</a></code>
+ keyword may be used with <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements.
+
+ <p>The <code title=rel-external><a href="#external">external</a></code>
+ keyword indicates that the link is leading to a document that is not part
+ of the site that the current document forms a part of.
+
+ <h5 id=link-type5><span class=secno>4.11.3.7. </span>Link type "<dfn
+ id=feed title=rel-feed><code>feed</code></dfn>"</h5>
+
+ <p>The <code title=rel-feed><a href="#feed">feed</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-feed><a href="#feed">feed</a></code> keyword
+ indicates that the referenced document is a syndication feed. If the <code
+ title=rel-alternate><a href="#alternate">alternate</a></code> link type is
+ also specified, then the feed is specifically the feed for the current
+ document; otherwise, the feed is just a syndication feed, not necessarily
+ associated with a particular Web page.
+
+ <p>The first <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, or <code><a href="#area">area</a></code> element
+ in the document (in tree order) that creates a hyperlink with the link
+ type <code title=rel-feed><a href="#feed">feed</a></code> must be treated
+ as the default syndication feed for the purposes of feed autodiscovery.
+
+ <p class=note>The <code title=rel-feed><a href="#feed">feed</a></code>
+ keyword is implied by the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> link type in certain cases (q.v.).
+
+ <div class=example>
+ <p>The following two <code><a href="#link">link</a></code> elements are
+ equivalent: both give the syndication feed for the current page:</p>
+
+ <pre><link rel="alternate" type="application/atom+xml" href="data.xml"></pre>
+
+ <pre><link rel="feed alternate" href="data.xml"></pre>
+
+ <p>The following extract offers various different syndication feeds:</p>
+
+ <pre> <p>You can access the planets database using Atom feeds:</p>
+ <ul>
+ <li><a href="recently-visited-planets.xml" rel="feed">Recently Visited Planets</a></li>
+ <li><a href="known-bad-planets.xml" rel="feed">Known Bad Planets</a></li>
+ <li><a href="unexplored-planets.xml" rel="feed">Unexplored Planets</a></li>
+ </ul></pre>
+ </div>
+
+ <h5 id=link-type6><span class=secno>4.11.3.8. </span>Link type "<dfn
+ id=help title=rel-help><code>help</code></dfn>"</h5>
+
+ <p>The <code title=rel-help><a href="#help">help</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>For <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements, the <code title=rel-help><a
+ href="#help">help</a></code> keyword indicates that the referenced
+ document provides further help information for the parent of the element
+ defining the hyperlink, and its children.
+
+ <div class=example>
+ <p>In the following example, the form control has associated
+ context-sensitive help. The user agent could use this information, for
+ example, displaying the referenced document if the user presses the
+ "Help" or "F1" key.</p>
+
+ <pre> <p><label> Topic: <input name=topic> <a href="help/topic.html" rel="help">(Help)</a></label></p></pre>
+ </div>
+
+ <p>For <code><a href="#link">link</a></code> elements, the <code
+ title=rel-help><a href="#help">help</a></code> keyword indicates that the
+ referenced document provides help for the page as a whole.
+
+ <h5 id=link-type7><span class=secno>4.11.3.9. </span>Link type "<dfn
+ id=icon3 title=rel-icon><code>icon</code></dfn>"</h5>
+
+ <p>The <code title=rel-icon><a href="#icon3">icon</a></code> keyword may be
+ used with <code><a href="#link">link</a></code> elements, for which it
+ creates an <a href="#links1" title="external resource link">external
+ resource link</a>.
+
+ <p>The specified resource is an icon representing the page or site, and
+ should be used by the user agent when representing the page in the user
+ interface.
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of icons. If
+ multiple icons are provided, the user agent must select the most
+ appropriate icon according to the <code title=attr-link-media><a
+ href="#media0">media</a></code> attribute.
+
+ <h5 id=link-type8><span class=secno>4.11.3.10. </span>Link type "<dfn
+ id=license title=rel-license><code>license</code></dfn>"</h5>
+
+ <p>The <code title=rel-license><a href="#license">license</a></code>
+ keyword may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-license><a href="#license">license</a></code>
+ keyword indicates that the referenced document provides the copyright
+ license terms under which the current document is provided.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keyword "<code title="">copyright</code>" like the <code
+ title=rel-license><a href="#license">license</a></code> keyword.
+
+ <h5 id=link-type9><span class=secno>4.11.3.11. </span>Link type "<dfn
+ id=nofollow title=rel-nofollow><code>nofollow</code></dfn>"</h5>
+
+ <p>The <code title=rel-nofollow><a href="#nofollow">nofollow</a></code>
+ keyword may be used with <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code> elements.
+
+ <p>The <code title=rel-nofollow><a href="#nofollow">nofollow</a></code>
+ keyword indicates that the link is not endorsed by the original author or
+ publisher of the page.
+
+ <h5 id=link-type10><span class=secno>4.11.3.12. </span>Link type "<dfn
+ id=pingback title=rel-pingback><code>pingback</code></dfn>"</h5>
+
+ <p>The <code title=rel-pingback><a href="#pingback">pingback</a></code>
+ keyword may be used with <code><a href="#link">link</a></code> elements,
+ for which it creates an <a href="#links1" title="external resource
+ link">external resource link</a>.
+
+ <p>For the semantics of the <code title=rel-pingback><a
+ href="#pingback">pingback</a></code> keyword, see the Pingback 1.0
+ specification. <a href="#refsPINGBACK">[PINGBACK]</a>
+
+ <h5 id=link-type11><span class=secno>4.11.3.13. </span>Link type "<dfn
+ id=prefetch title=rel-prefetch><code>prefetch</code></dfn>"</h5>
+
+ <p>The <code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
+ keyword may be used with <code><a href="#link">link</a></code> elements,
+ for which it creates an <a href="#links1" title="external resource
+ link">external resource link</a>.
+
+ <p>The <code title=rel-prefetch><a href="#prefetch">prefetch</a></code>
+ keyword indicates that preemptively fetching and caching the specified
+ resource is likely to be beneficial, as it is highly likely that the user
+ will require this resource.
+
+ <h5 id=link-type12><span class=secno>4.11.3.14. </span>Link type "<dfn
+ id=search0 title=rel-search><code>search</code></dfn>"</h5>
+
+ <p>The <code title=rel-search><a href="#search0">search</a></code> keyword
+ may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-search><a href="#search0">search</a></code> keyword
+ indicates that the referenced document provides an interface specifically
+ for searching the document and its related resources.
+
+ <p class=note>OpenSearch description documents can be used with <code><a
+ href="#link">link</a></code> elements and the <code title=rel-search><a
+ href="#search0">search</a></code> link type to enable user agents to
+ autodiscover search interfaces.
+
+ <h5 id=link-type13><span class=secno>4.11.3.15. </span>Link type "<dfn
+ id=stylesheet title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
+
+ <p>The <code title=rel-stylesheet><a
+ href="#stylesheet">stylesheet</a></code> keyword may be used with <code><a
+ href="#link">link</a></code> elements, for which it creates an <a
+ href="#links1" title="external resource link">external resource link</a>
+ that contributes to the <a href="#styling0">styling processing model</a>.
+
+ <p>The specified resource is a resource that describes how to present the
+ document. Exactly how the resource is to be processed depends on the
+ actual type of the resource.
+
+ <p>If the <code title=rel-alternate><a
+ href="#alternate">alternate</a></code> keyword is also specified on the
+ <code><a href="#link">link</a></code> element, then the link is an
+ alternative stylesheet.
+
+ <h5 id=link-type14><span class=secno>4.11.3.16. </span>Link type "<dfn
+ id=sidebar title=rel-sidebar><code>sidebar</code></dfn>"</h5>
+
+ <p>The <code title=rel-sidebar><a href="#sidebar">sidebar</a></code>
+ keyword may be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-sidebar><a href="#sidebar">sidebar</a></code>
+ keyword indicates that the referenced document, if retrieved, is intended
+ to be shown in a <a href="#secondary0">secondary browsing context</a> (if
+ possible), instead of in the current <a href="#browsing0">browsing
+ context</a>.
+
+ <p>A <a href="#hyperlinks" title=hyperlink>hyperlink element</a> with with
+ the <code title=rel-sidebar><a href="#sidebar">sidebar</a></code> keyword
+ specified is a <dfn id=sidebar0 title=rel-sidebar-hyperlink>sidebar
+ hyperlink</dfn>.
+
+ <h5 id=link-type15><span class=secno>4.11.3.17. </span>Link type "<dfn
+ id=tag title=rel-tag><code>tag</code></dfn>"</h5>
+
+ <p>The <code title=rel-tag><a href="#tag">tag</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-tag><a href="#tag">tag</a></code> keyword indicates
+ that the <em>tag</em> that the referenced document represents applies to
+ the current document.
+
+ <h5 id=hierarchical><span class=secno>4.11.3.18. </span>Hierarchical link
+ types</h5>
+
+ <p>Some documents form part of a hierarchical structure of documents.
+
+ <p>A hierarchical structure of documents is one where each document can
+ have various subdocuments. A subdocument is said to be a <em>child</em> of
+ the document it is a subdocument of. The document of which it is a
+ subdocument is said to be its <em>parent</em>. The children of a document
+ have a relative order; the subdocument that precedes another is its
+ <em>previous sibling</em>, and the one that follows it is its <em>next
+ sibling</em>. A document with no parent forms the top of the hierarchy.
+
+ <h6 id=link-type16><span class=secno>4.11.3.18.1. </span>Link type "<dfn
+ id=first title=rel-first><code>first</code></dfn>"</h6>
+
+ <p>The <code title=rel-first><a href="#first">first</a></code> keyword may
+ be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-first><a href="#first">first</a></code> keyword
+ indicates that the document is part of a hierarchical structure, and that
+ the link is leading to the document that is the first child of the current
+ document's parent document.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keywords "<code title="">begin</code>" and "<code
+ title="">start</code>" like the <code title=rel-first><a
+ href="#first">first</a></code> keyword.
+
+ <h6 id=link-type17><span class=secno>4.11.3.18.2. </span>Link type "<dfn
+ id=index title=rel-index><code>index</code></dfn>"</h6>
+
+ <p>The <code title=rel-index><a href="#index">index</a></code> keyword may
+ be used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-index><a href="#index">index</a></code> keyword
+ indicates that the document is part of a hierarchical structure, and that
+ the link is leading to the document that is the top of the hierarchy.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keywords "<code title="">top</code>", "<code
+ title="">contents</code>", and "<code title="">toc</code>" like the <code
+ title=rel-index><a href="#index">index</a></code> keyword.
+
+ <h6 id=link-type18><span class=secno>4.11.3.18.3. </span>Link type "<dfn
+ id=last title=rel-last><code>last</code></dfn>"</h6>
+
+ <p>The <code title=rel-last><a href="#last">last</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-last><a href="#last">last</a></code> keyword
+ indicates that the document is part of a hierarchical structure, and that
+ the link is leading to the document that is the last child of the current
+ document's parent document.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keyword "<code title="">end</code>" like the <code
+ title=rel-last><a href="#last">last</a></code> keyword.
+
+ <h6 id=link-type19><span class=secno>4.11.3.18.4. </span>Link type "<dfn
+ id=next title=rel-next><code>next</code></dfn>"</h6>
+
+ <p>The <code title=rel-next><a href="#next">next</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-next><a href="#next">next</a></code> keyword
+ indicates that the document is part of a hierarchical structure, and that
+ the link is leading to the document that is the next sibling of the
+ current document.
+
+ <h6 id=link-type20><span class=secno>4.11.3.18.5. </span>Link type "<dfn
+ id=prev title=rel-prev><code>prev</code></dfn>"</h6>
+
+ <p>The <code title=rel-prev><a href="#prev">prev</a></code> keyword may be
+ used with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-prev><a href="#prev">prev</a></code> keyword
+ indicates that the document is part of a hierarchical structure, and that
+ the link is leading to the document that is the previous sibling of the
+ current document.
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents must also
+ treat the keyword "<code title="">previous</code>" like the <code
+ title=rel-prev><a href="#prev">prev</a></code> keyword.
+
+ <h6 id=link-type21><span class=secno>4.11.3.18.6. </span>Link type "<dfn
+ id=up title=rel-up><code>up</code></dfn>"</h6>
+
+ <p>The <code title=rel-up><a href="#up">up</a></code> keyword may be used
+ with <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. For <code><a href="#link">link</a></code> elements, it creates a
+ <a href="#hyperlink1" title="hyperlink link">hyperlink</a>.
+
+ <p>The <code title=rel-up><a href="#up">up</a></code> keyword indicates
+ that the document is part of a hierarchical structure, and that the link
+ is leading to the document that is the parent of the current document.</p>
+ <!-- idea: rel="up" vs rel="up up" vs rel="up up up top"
+ this would allow you to do breadcrumbs:
+ <nav>
+ <p>
+ <a href="/" rel="top up up up">Main</a> >
+ <a href="/products/" rel="up up">Products</a> >
+ <a href="/products/dishwashers" rel="up">Dishwashers</a> >
+ Second hand
+ </p>
+ </nav>
+ -->
+
+ <h5 id=other0><span class=secno>4.11.3.19. </span>Other link types</h5>
+
+ <p>Other than the types defined above, only types defined as extensions in
+ the <a href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
+ RelExtensions page</a> may be used with the <code title="">rel</code>
+ attribute on <code><a href="#link">link</a></code>, <code><a
+ href="#a">a</a></code>, and <code><a href="#area">area</a></code>
+ elements. <a href="#refsWHATWGWIKI">[WHATWGWIKI]</a>
+
+ <p>Anyone is free to edit the WHATWG Wiki RelExtensions page at any time to
+ add a type. Extension types must be specified with the following
+ information:
+
+ <dl>
+ <dt>Keyword
+
+ <dd>
+ <p>The actual value being defined. The value should not be confusingly
+ similar to any other defined value (e.g. differing only in case).
+
+ <dt>Effect on... <code><a href="#link">link</a></code>
+
+ <dd>
+ <p>One of the following:</p>
+
+ <dl>
+ <dt>not allowed
+
+ <dd>The keyword is not allowed to be specified on <code><a
+ href="#link">link</a></code> elements.
+
+ <dt>Hyperlink
+
+ <dd>The keyword may be specified on a <code><a
+ href="#link">link</a></code> element; it creates a <a
+ href="#hyperlink1" title="hyperlink link">hyperlink link</a>.
+
+ <dt>External Resource
+
+ <dd>The keyword may be specified on a <code><a
+ href="#link">link</a></code> element; it creates a <a href="#links1"
+ title="external resource link">external resource link</a>.
+ </dl>
+
+ <dt>Effect on... <code><a href="#a">a</a></code> and <code><a
+ href="#area">area</a></code>
+
+ <dd>
+ <p>One of the following:</p>
+
+ <dl>
+ <dt>not allowed
+
+ <dd>The keyword is not allowed to be specified on <code><a
+ href="#a">a</a></code> and <code><a href="#area">area</a></code>
+ elements.
+
+ <dt>Hyperlink
+
+ <dd>The keyword may be specified on <code><a href="#a">a</a></code> and
+ <code><a href="#area">area</a></code> elements; it creates a <a
+ href="#hyperlinks" title=hyperlink>hyperlink</a>.
+ </dl>
+
+ <dt>Brief description
+
+ <dd>
+ <p>A short description of what the keyword's meaning is.
+
+ <dt>Link to more details
+
+ <dd>
+ <p>A link to a more detailed description of the keyword's semantics and
+ requirements. It could be another page on the Wiki, or a link to an
+ external page.
+
+ <dt>Synonyms
+
+ <dd>
+ <p>A list of other keyword values that have exactly the same processing
+ requirements. Authors must not use the values defined to be synonyms,
+ they are only intended to allow user agents to support legacy content.
+
+ <dt>Status
+
+ <dd>
+ <p>One of the following:</p>
+
+ <dl>
+ <dt>Proposal
+
+ <dd>The keyword has not received wide peer review and approval. It is
+ included for completeness because pages use the keyword. Pages should
+ not use the keyword.
+
+ <dt>Accepted
+
+ <dd>The keyword has received wide peer review and approval. It has a
+ specification that unambiguously defines how to handle pages that use
+ the keyword, including when they use them in incorrect ways. Pages may
+ use the keyword.
+
+ <dt>Rejected
+
+ <dd>The keyword has received wide peer review and it has been found to
+ have significant problems. Pages must not use the keyword. When a
+ keyword has this status, the "Effect on... <code><a
+ href="#link">link</a></code>" and "Effect on... <code><a
+ href="#a">a</a></code> and <code><a href="#area">area</a></code>"
+ information should be set to "not allowed".
+ </dl>
+
+ <p>If a keyword is added with the "proposal" status and found to be
+ redundant with existing values, it should be removed and listed as a
+ synonym for the existing value. If a keyword is added with the
+ "proposal" status and found to be harmful, then it should be changed to
+ "rejected" status, and its "Effect on..." information should be changed
+ accordingly.</p>
+ </dl>
+
+ <p>Conformance checkers must use the information given on the WHATWG Wiki
+ RelExtensions page to establish if a value not explicitly defined in this
+ specification is allowed or not. When an author uses a new type not
+ defined by either this specification or the Wiki page, conformance
+ checkers should offer to add the value to the Wiki, with the details
+ described above, with the "proposal" status.
+
+ <p>This specification does not define how new values will get approved. It
+ is expected that the Wiki will have a community that addresses this.
+
+ <h3 id=interfaces><span class=secno>4.12. </span>Interfaces for URI
+ manipulation</h3>
+
+ <p>An interface that has a complement of <dfn id=uri-decomposition>URI
+ decomposition attributes</dfn> will have seven attributes with the
+ following definitions:
+
+ <pre class=idl>
+ attribute DOMString <a href="#protocol0" title=dom-uda-protocol>protocol</a>;
+ attribute DOMString <a href="#host0" title=dom-uda-host>host</a>;
+ attribute DOMString <a href="#hostname0" title=dom-uda-hostname>hostname</a>;
+ attribute DOMString <a href="#port0" title=dom-uda-port>port</a>;
+ attribute DOMString <a href="#pathname0" title=dom-uda-pathname>pathname</a>;
+ attribute DOMString <a href="#search1" title=dom-uda-search>search</a>;
+ attribute DOMString <a href="#hash0" title=dom-uda-hash>hash</a>;
+</pre>
+
+ <p>The attributes defined to be URI decomposition attributes must act as
+ described for the attributes with the same corresponding names in this
+ section.
+
+ <p>In addition, an interface with a complement of URI decomposition
+ attributes will define an <dfn id=input
+ title=concept-uda-input>input</dfn>, which is a URI that the attributes
+ act on, and a <dfn id=common3 title=concept-uda-setter>common setter
+ action</dfn>, which is a set of steps invoked when any of the attributes'
+ setters are invoked.
+
+ <p>The seven URI decomposition attributes have similar requirements.
+
+ <p>On getting, if the <a href="#input" title=concept-uda-input>input</a>
+ fulfills the condition given in the "getter condition" column
+ corresponding to the attribute in the table below, the user agent must
+ return the part of the <a href="#input" title=concept-uda-input>input</a>
+ URI given in the "component" column, with any prefixes specified in the
+ "prefix" column appropriately added to the start of the string and any
+ suffixes specified in the "suffix" column appropriately added to the end
+ of the string. Otherwise, the attribute must return the empty string.
+
+ <p>On setting, the new value must first be mutated as described by the
+ "setter preprocessor" column, then mutated by %-escaping any characters in
+ the new value that are not valid in the relevant component as given by the
+ "component" column. Then, if the resulting new value fulfills the
+ condition given in the "setter condition" column, the user agent must make
+ a new string <var title="">output</var> by replacing the component of the
+ URI given by the "component" column in the <a href="#input"
+ title=concept-uda-input>input</a> URI with the new value; otherwise, the
+ user agent must let <var title="">output</var> be equal to the <a
+ href="#input" title=concept-uda-input>input</a>. Finally, the user agent
+ must invoke the <a href="#common3" title=concept-uda-setter>common setter
+ action</a> with the value of <var title="">output</var>.
+
+ <p>The rules for parsing and constructing URIs are described in RFC 3986
+ and RFC 3987, as modified by RFC 2732. <a
+ href="#refsRFC3986">[RFC3986]</a> <a href="#refsRFC3987">[RFC3987]</a> <a
+ href="#refsRFC2732">[RFC2732]</a>
+
+ <table>
+ <thead>
+ <tr>
+ <th>Attribute
+
+ <th>Component
+
+ <th>Getter Condition
+
+ <th>Prefix
+
+ <th>Suffix
+
+ <th>Setter Preprocessor
+
+ <th>Setter Condition
+
+ <tbody>
+ <tr>
+ <td><dfn id=protocol0 title=dom-uda-protocol><code>protocol</code></dfn>
+
+
+ <td><scheme>
+
+ <td>—
+
+ <td>—
+
+ <td>U+003A COLON ("<code title="">:</code>")
+
+ <td>Remove all trailing U+003A COLON ("<code title="">:</code>")
+ characters
+
+ <td>The new value is not the empty string
+
+ <tr>
+ <td><dfn id=host0 title=dom-uda-host><code>host</code></dfn>
+
+ <td><hostport>
+
+ <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
+ and uses a server-based naming authority
+
+ <td>—
+
+ <td>—
+
+ <td>—
+
+ <td>—
+
+ <tr>
+ <td><dfn id=hostname0 title=dom-uda-hostname><code>hostname</code></dfn>
+
+
+ <td><host>
+
+ <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
+ and uses a server-based naming authority
+
+ <td>—
+
+ <td>—
+
+ <td>Remove all leading U+002F SOLIDUS ("<code title="">/</code>")
+ characters
+
+ <td>—
+
+ <tr>
+ <td><dfn id=port0 title=dom-uda-port><code>port</code></dfn>
+
+ <td><port>
+
+ <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
+ and uses a server-based naming authority
+
+ <td>—
+
+ <td>—
+
+ <td>Remove any characters in the new value that are not in the range
+ U+0030 DIGIT ZERO .. U+0039 DIGIT NINE
+
+ <td>The new value is not the empty string
+
+ <tr>
+ <td><dfn id=pathname0 title=dom-uda-pathname><code>pathname</code></dfn>
+
+
+ <td><abs_path>
+
+ <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
+
+ <td>—
+
+ <td>—
+
+ <td>If it has no leading U+002F SOLIDUS ("<code title="">/</code>")
+ character, prepend a U+002F SOLIDUS ("<code title="">/</code>")
+ character to the new value
+
+ <td>—
+
+ <tr>
+ <td><dfn id=search1 title=dom-uda-search><code>search</code></dfn>
+
+ <td><query>
+
+ <td><a href="#input" title=concept-uda-input>input</a> is hierarchical
+
+ <td>U+003F QUESTION MARK ("<code title="">?</code>")
+
+ <td>—
+
+ <td>Remove one leading U+003F QUESTION MARK ("<code title="">?</code>")
+ character, if any
+
+ <td>—
+
+ <tr>
+ <td><dfn id=hash0 title=dom-uda-hash><code>hash</code></dfn>
+
+ <td><fragment>
+
+ <td>Fragment identifier is longer than zero characters
+
+ <td>U+0023 NUMBER SIGN ("<code title="">#</code>")
+
+ <td>—
+
+ <td>Remove one leading U+0023 NUMBER SIGN ("<code title="">#</code>")
+ character, if any
+
+ <td>—
+ </table>
+ <!--
+ http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
+ http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
+ http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
+-->
+
<h2 id=editing><span class=secno>5. </span><dfn id=editing0>Editing</dfn></h2>
<p>This section describes various features that allow authors to enable
Modified: source
===================================================================
--- source 2007-09-25 08:37:51 UTC (rev 1032)
+++ source 2007-09-25 08:53:21 UTC (rev 1033)
@@ -22781,1256 +22781,7 @@
- <h3 id="links">Links</h3>
-
- <h4>Hyperlink elements</h4>
-
- <p>The <code>a</code>, <code>area</code>, and <code>link</code>
- elements can, in certain situations described in the definitions of
- those elements, represent <dfn
- 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 URI (or
- IRI). This URI is the <em>destination resource</em> of the
- hyperlink.</p>
-
- <div class="note">
-
- <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>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</span>. User agents use this name when <span>following
- hyperlinks</span>.</p></p>
-
- <p>The <dfn id="ping"
- title="attr-hyperlink-ping"><code>ping</code></dfn> attribute, if
- present, gives the URIs of the resources that are interested in
- being notified if the user follows the hyperlink. The value must be
- a space separated list of one or more URIs (or IRIs). The value is
- used by the user agent when <span>following hyperlinks</span>.</p>
-
- <p>For <code>a</code> and <code>area</code> elements that represent
- hyperlinks, the relationship between the document containing the
- hyperlink and the destination resource indicated by the hyperlink is
- given by the value of the element's <dfn
- title="attr-hyperlink-rel"><code>rel</code></dfn> attribute, which
- must be an <span>unordered set of space-separated tokens</span>. The
- <a href="#linkTypes">allowed values and their meanings</a> are
- defined below. The <code title="attr-hyperlink-rel">rel</code>
- attribute has no default value. If the attribute is omitted or if
- none of the values in the attribute are recognised by the UA, then
- the document has no particular relationship with the destination
- resource other than there being a hyperlink between the two.</p>
-
- <p>The <dfn title="attr-hyperlink-media"><code>media</code></dfn>
- attribute describes for which media the target document was
- designed. It is purely advisory. The value must be a valid media
- query. <a href="#refsMQ">[MQ]</a> The default, if the <code
- title="attr-hyperlink-media">media</code> attribute is omitted or
- has an invalid value, is <code>all</code>.</p>
-
- <p>The <dfn
- title="attr-hyperlink-hreflang"><code>hreflang</code></dfn>
- attribute on hyperlink elements, if present, gives the language of
- the linked resource. It is purely advisory. The value must be a
- valid RFC 3066 language code. <a href="#refsRFC3066">[RFC3066]</a>
- User agents must not consider this attribute authoritative —
- upon fetching the resource, user agents must only use language
- information associated with the resource to determine its language,
- not metadata included in the link to the resource.</p>
-
- <p>The <dfn title="attr-hyperlink-type"><code>type</code></dfn>
- attribute, if present, gives the MIME type of the linked
- resource. It is purely advisory. The value must be a valid MIME
- type, optionally with parameters. <a
- href="#refsRFC2046">[RFC2046]</a> User agents must not consider the
- <code title="attr-hyperlink-type">type</code> attribute
- authoritative — upon fetching the resource, user agents must
- not use metadata included in the link to the resource to determine
- its type.</p>
-
-
-
- <h4><dfn>Following hyperlinks</dfn></h4>
-
- <p>When a user <em>follows a hyperlink</em>, the user agent must
- <span>navigate</span> a <span>browsing context</span> to the URI of
- the hyperlink.
-
- <p>The URI of the hyperlink is URI given by resolving the the <code
- title="attr-hyperlink-href">href</code> attribute of that hyperlink
- relative to the hyperlink's element. In the case of server-side
- image maps, the URI of the hyperlink must further have its
- <var>hyperlink suffix</var> appended to it.</p>
-
- <p>If the user indicated a specific browsing context when following
- the hyperlink, or if the user agent is configured to follow
- hyperlinks by navigating a particular browsing context, then that
- must be the browsing context that is navigated.</p>
-
- <p>Otherwise, if the hyperlink element is an <code>a</code> or
- <code>area</code> element that has a <code
- title="attr-hyperlink-target">target</code> attribute, then the
- browsing context that is navigated must be chosen by applying
- <span>the rules for chosing a browsing context given a browsing
- context name</span>, using the value of the <code
- title="attr-hyperlink-target">target</code> attribute as the
- browsing context name. If these rules result in the creation of a
- new <span>browsing context</span>, it must be navigated with
- <span>replacement enabled</span>.</p>
-
- <p>Otherwise, if the hyperlink element is a <span
- title="rel-sidebar-hyperlink">sidebar hyperlink</span> and the user
- agent implements a feature that can be considered a secondary
- browsing context, such a secondary browsing context may be selected
- as the browsing context to be navigated.</p>
-
- <p>Otherwise, if the hyperlink element is an <code>a</code> or
- <code>area</code> element with no <code
- title="attr-hyperlink-target">target</code> attribute, but one of
- the child nodes of <span>the <code>head</code> element</span> is a
- <code>base</code> element with a <code
- title="attr-base-target">target</code> attribute, then the browsing
- context that is navigated must be chosen by applying <span>the rules
- for chosing a browsing context given a browsing context name</span>,
- using the value of the <code title="attr-base-target">target</code>
- attribute of the first such <code>base</code> element as the
- browsing context name. If these rules result in the creation of a
- new <span>browsing context</span>, it must be navigated with
- <span>replacement enabled</span>.</p>
-
- <p>Otherwise, the browsing context that must be navigated is the
- same browsing context as the one which the hyperlink element itself
- is in.</p>
-
-
-
- <h5>Hyperlink auditing</h5>
-
- <p>If an <code>a</code> or <code>area</code> hyperlink element has a
- <code title="attr-hyperlink-ping">ping</code> attribute and the user
- follows the hyperlink, the user agent must take the <code
- title="attr-hyperlink-ping">ping</code> attribute's value, strip
- leading and trailing <span title="space character">spaces</span>,
- split the value on sequences of spaces, treat each resulting part as
- a URI (resolving relative URIs according to element's base URI) and
- then should send a request to each of the resulting URIs. This may
- be done in parallel with the primary request, and is independent of
- the result of that request.</p>
-
- <p>User agents should allow the user to adjust this behaviour, for
- example in conjunction with a setting that disables the sending of
- HTTP Referrer headers. Based on the user's preferences, UAs may
- either <span>ignore</span> the <code title="attr-hyperlink-ping">ping</code>
- attribute altogether, or selectively ignore URIs in the list
- (e.g. ignoring any third-party URIs).</p>
-
- <p>For URIs that are HTTP URIs, the requests must be performed using
- the POST method (with an empty entity body in the request). User
- agents must ignore any entity bodies returned in the responses, but
- must, unless otherwise specified by the user, honour the HTTP
- headers — in particular, HTTP cookie headers. <a
- href="#refsRFC2965">[RFC2965]</a></p>
-
- <p class="note">To save bandwidth, implementors might wish to
- consider omitting optional headers such as <code>Accept</code> from
- these requests.</p>
-
- <p>When the <code title="attr-hyperlink-ping">ping</code> attribute is
- present, user agents should clearly indicate to the user that
- following the hyperlink will also cause secondary requests to be
- sent in the background, possibly including listing the actual target
- URIs.</p>
-
- <div class="note">
-
- <p>The <code title="attr-hyperlink-ping">ping</code> attribute is redundant
- with pre-existing technologies like HTTP redirects and JavaScript
- in allowing Web pages to track which off-site links are most
- popular or allowing advertisers to track click-through rates.</p>
-
- <p>However, the <code title="attr-hyperlink-ping">ping</code> attribute
- provides these advantages to the user over those alternatives:</p>
-
- <ul>
-
- <li>It allows the user to see the final target URI
- unobscured.</li>
-
- <li>It allows the UA to inform the user about the out-of-band
- notifications.</li>
-
- <li>It allows the paranoid user to disable the notifications
- without losing the underlying link functionality.</li>
-
- <li>It allows the UA to optimise the use of available network
- bandwidth so that the target page loads faster.</li>
-
- </ul>
-
- <p>Thus, while it is possible to track users without this feature,
- authors are encouraged to use the <code
- title="attr-hyperlink-ping">ping</code> attribute so that the user agent
- can improve <!-- XXX optimise? --> the user experience.</p> <!--
- XXX need a better way to end that sentence. It's what I mean, but
- it sounds kooky. -->
-
- </div>
-
-
-
- <h4 id="linkTypes">Link types</h4>
-
- <p>The following table summarises the link types that are defined by
- this specification. This table is non-normative; the actual
- definitions for the link types are given in the next few
- sections.</p>
-
- <p>In this section, the term <em>referenced document</em> refers to
- the resource identified by the element representing the link, and
- the term <em>current document</em> refers to the resource within
- which the element representing the link finds itself.</p>
-
- <p>To determine which link types apply to a <code>link</code>,
- <code>a</code>, or <code>area</code> element, the element's <code
- title="">rel</code> attribute must be <span title="split a string on
- spaces">split on spaces</span>. The resulting tokens are the link
- types that apply to that element.</p>
-
- <table>
- <thead>
- <tr>
- <th rowspan="2">Link type</th>
- <th colspan="2">Effect on...</th>
- <th rowspan="2">Brief description</th>
- </tr>
- <tr>
- <th><code>link</code></th>
- <th><code>a</code> and <code>area</code></th>
- </tr>
- </thead>
- <tbody>
-
- <tr>
- <td><code title="rel-alternate">alternate</code></td> <!-- second most used <link rel> value -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives alternate representations of the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-archives">archives</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
- </tr>
-
- <tr>
- <td><code title="rel-author">author</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives a link to the current document's author.</td>
- </tr>
-
- <tr>
- <td><code title="rel-bookmark">bookmark</code></td> <!-- fourth most used <a rel> value -->
- <td><em>not allowed</em></td>
- <td><span>Hyperlink</span></td>
- <td>Gives the permalink for the nearest ancestor section.</td>
- </tr>
-
- <tr>
- <td><code title="rel-contact">contact</code></td> <!-- 8th most used <a rel> value -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives a link to contact information for the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-external">external</code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the referenced document is not part of the same site as the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-feed">feed</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives the address of a syndication feed for the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-first">first</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document is a part of a series, and that the first document in the series is the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-help">help</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Provides a link to context-sensitive help.</td>
- </tr>
-
- <tr>
- <td><code title="rel-icon">icon</code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
- <td><span title="external resource link">External Resource</span></td>
- <td><em>not allowed</em></td>
- <td>Imports an icon to represent the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-index">index</code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-last">last</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document is a part of a series, and that the last document in the series is the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-license">license</code></td> <!-- seventh most used <a rel> value -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document is covered by the copyright license described by the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-next">next</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document is a part of a series, and that the next document in the series is the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-nofollow">nofollow</code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-pingback">pingback</code></td>
- <td><span title="external resource link">External Resource</span></td>
- <td><em>not allowed</em></td>
- <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-prefetch">prefetch</code></td>
- <td><span title="external resource link">External Resource</span></td>
- <td><em>not allowed</em></td>
- <td>Specifies that the target resource should be pre-emptively cached.</td>
- </tr>
-
- <tr>
- <td><code title="rel-prev">prev</code></td> <!-- prev is used more than previous -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-search">search</code></td> <!-- used quite a bit -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
- </tr>
-
- <tr>
- <td><code title="rel-stylesheet">stylesheet</code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
- <td><span title="external resource link">External Resource</span></td>
- <td><em>not allowed</em></td>
- <td>Imports a stylesheet.</td>
- </tr>
-
- <tr>
- <td><code title="rel-sidebar">sidebar</code></td> <!-- used quite a bit -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Specifies that the referenced document, if retrieved, is intended to be shown in the browser's sidebar (if it has one).</td>
- </tr>
-
- <tr>
- <td><code title="rel-tag">tag</code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Gives a tag (identified by the given address) that applies to the current document.</td>
- </tr>
-
- <tr>
- <td><code title="rel-up">up</code></td>
- <td><span title="hyperlink link">Hyperlink</span></td>
- <td><span>Hyperlink</span></td>
- <td>Provides a link to a document giving the context for the current document.</td>
- </tr>
-
- </tbody>
- </table>
-
- <p>Some of the types described below list synonyms for these
- values. These are to be handled as specified by user agents, but
- must not be used in documents.</p>
-
-
- <!--XXX
-
- issues for rel="", etc:
- rel="alternate stylesheet"
- rel="script"
- rel="related" // see also
- which relationship combinations are allowed
- what multiple values might mean (multiple <a rel="top"> in the same document)
- http://www.euronet.nl/~tekelenb/WWW/LINK/
- http://shift.freezope.org/konq_rellinks/development_html
- http://hixie.ch/specs/html/link/001
- http://hixie.ch/specs/html/link/002
- http://www.hixie.ch/specs/html/metadata
- what UAs are supposed to do with this
- do something about http://microformats.org/wiki/rel-enclosure
-
-mpt says:
-> "As with <a> elements, when <link> elements that use these relationships
-> are present, UAs should render them. As with <a> elements, when <link>
-> elements that use these relationships do not exist, UAs should not
-> render them. UAs should not make <link> rendering any easier to hide
-> than <a> rendering."
-
-for microformats (e.g. to refer to an hcard from an hcalendar):
-rel=xref
-<a> and <area> only
-The href attribute's value must start with a '#' character.
-Indicates an in-page cross-reference. For the purposes of data mining tools, the subtree rooted
-at the first element with the given ID must be treated as if it was cloned and replaced the <a> element.
-
- -->
-
-
- <h5>Link type "<dfn title="rel-alternate"><code>alternate</code></dfn>"</h5>
-
- <p>The <code title="rel-alternate">alternate</code> keyword may be
- used with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, if the <code
- title="attr-link-rel">rel</code> attribute does not also contain the
- keyword <code title="rel-stylesheet">stylesheet</code>, it creates a
- <span title="hyperlink link">hyperlink</span>; but if it
- <em>does</em> also contains the keyword <code
- title="rel-stylesheet">stylesheet</code>, the <code
- title="rel-alternate">alternate</code> keyword instead modifies the
- meaning of the <code title="rel-stylesheet">stylesheet</code>
- keyword in the way described for that keyword, and the rest of this
- subsection doesn't apply.</p>
-
- <p>The <code title="rel-alternate">alternate</code> keyword
- indicates that the referenced document is an alternate
- representation of the current document.</p>
-
- <p>The nature of the referenced document is given by the <code
- title="attr-hyperlink-media">media</code>, <code
- title="attr-hyperlink-hreflang">hreflang</code>, and <code
- title="attr-hyperlink-type">type</code> attributes.</p>
-
- <p>If the <code title="rel-alternate">alternate</code> keyword is
- used with the <code title="attr-hyperlink-media">media</code>
- attribute, it indicates that the referenced document is intended for use
- with the media specified.</p>
-
- <p>If the <code title="rel-alternate">alternate</code> keyword is
- used with the <code title="attr-hyperlink-hreflang">hreflang</code>
- attribute, and that attribute's value differs from the <span>root
- element</span>'s <span>language</span>, it indicates that the
- referenced document is a translation.</p>
-
- <p>If the <code title="rel-alternate">alternate</code> keyword is
- used with the <code title="attr-hyperlink-type">type</code>
- attribute, it indicates that the referenced document is a
- reformulation of the current document in the specified format.</p>
-
- <p>The <code title="attr-hyperlink-media">media</code>, <code
- title="attr-hyperlink-hreflang">hreflang</code>, and <code
- title="attr-hyperlink-type">type</code> attributes can be combined
- when specified with the <code title="rel-alternate">alternate</code>
- keyword.</p>
-
- <div class="example">
-
- <p>For example, the following link is a French translation that
- uses the PDF format:</p>
-
- <pre><link rel=alternate type=application/pdf hreflang=fr href=manual-fr></pre>
-
- </div>
-
- <p>If the <code title="rel-alternate">alternate</code> keyword is
- used with the <code title="attr-hyperlink-type">type</code>
- attribute set to the value <code title="">application/rss+xml</code>
- or the value <code title="">application/atom+xml</code>, then the
- user agent must treat the link as it would if it had the <code
- title="rel-feed">feed</code> keyword specified as well.</p>
-
- <p>The <code title="rel-alternate">alternate</code> link
- relationship is transitive — that is, if a document links to
- two other documents with the link type "<code
- title="rel-alternate">alternate</code>", then, in addition to
- implying that those documents are alternative representations of the
- first document, it is also implying that those two documents are
- alternative representations of each other.</p>
-
-
- <h5>Link type "<dfn title="rel-archives"><code>archives</code></dfn>"</h5>
-
- <p>The <code title="rel-archives">archives</code> keyword may be
- used with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-archives">archives</code> keyword indicates
- that the referenced document describes a collection of records,
- documents, or other materials of historical interest.</p>
-
- <p class="example">A blog's index page could link to an index of the
- blog's past posts with <code title="">rel="archives"</code>.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keyword "<code title="">archive</code>" like the
- <code title="rel-archives">archives</code> keyword.</p>
-
-
- <h5>Link type "<dfn title="rel-author"><code>author</code></dfn>"</h5>
-
- <p>The <code title="rel-author">author</code> keyword may be
- used with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>For <code>a</code> and <code>area</code> elements, the <code
- title="rel-author">author</code> keyword indicates that the
- referenced document provides further information about the author of
- the section that the element defining the hyperlink <a
- href="#applyToSection">applies</a> to.</p>
-
- <p>For <code>link</code> elements, the <code
- title="rel-author">author</code> keyword indicates that the
- referenced document provides further information about the author
- for the page as a whole.</p>
-
- <p class="note">The "referenced document" can be, and often is, a
- <code title="">mailto:</code> URI giving the e-mail address of the
- author. <a href="#refsMAILTO">[MAILTO]</a></p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat <code>link</code>, <code>a</code>, and
- <code>area</code> elements that have a <code title="">rev</code>
- attribute with the value "<code>made</code>" as having the <code
- title="rel-author">author</code> keyword specified as a link
- relationship.</p>
-
-
- <h5>Link type "<dfn title="rel-bookmark"><code>bookmark</code></dfn>"</h5>
-
- <p>The <code title="rel-bookmark">bookmark</code> keyword may be
- used with <code>a</code> and <code>area</code> elements.</p>
-
- <p>The <code title="rel-bookmark">bookmark</code> keyword gives a
- permalink for the nearest ancestor <code>article</code> element of
- the linking element in question, or of <a
- href="#associatedSection">the section the linking element is most
- closely associated with</a>, if there are no ancestor
- <code>article</code> elements.</p>
-
- <div class="example">
- <p>The following snippet has three permalinks. A user agent could
- determine which permalink applies to which part of the spec by
- looking at where the permalinks are given.</p>
- <pre> ...
- <body>
- <h1>Example of permalinks</h1>
- <div id="a">
- <h2>First example</h2>
- <p><a href="a.html" rel="bookmark">This</a> permalink applies to
- only the content from the first H2 to the second H2. The DIV isn't
- exactly that section, but it roughly corresponds to it.</p>
- </div>
- <h2>Second example</h2>
- <article id="b">
- <p><a href="b.html" rel="bookmark">This</a> permalink applies to
- the outer ARTICLE element (which could be, e.g., a blog post).</p>
- <article id="c">
- <p><a href="c.html" rel="bookmark">This</a> permalink applies to
- the inner ARTICLE element (which could be, e.g., a blog comment).</p>
- </article>
- </article>
- </body>
- ...</pre>
- </div>
-
-
- <h5>Link type "<dfn title="rel-contact"><code>contact</code></dfn>"</h5>
-
- <p>The <code title="rel-contact">contact</code> keyword may be used
- with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>For <code>a</code> and <code>area</code> elements, the <code
- title="rel-contact">contact</code> keyword indicates that the
- referenced document provides further contact information for the
- section that the element defining the hyperlink <a
- href="#applyToSection">applies</a> to.</p>
-
- <p>User agents must treat any hyperlink in an <code>address</code>
- element as having the <code title="rel-contact">contact</code> link
- type specified.</p>
-
- <p>For <code>link</code> elements, the <code
- title="rel-contact">contact</code> keyword indicates that the
- referenced document provides further contact information for the
- page as a whole.</p>
-
-
- <h5>Link type "<dfn title="rel-external"><code>external</code></dfn>"</h5>
-
- <p>The <code title="rel-external">external</code> keyword may be
- used with <code>a</code> and <code>area</code> elements.</p>
-
- <p>The <code title="rel-external">external</code> keyword indicates
- that the link is leading to a document that is not part of the site
- that the current document forms a part of.</p>
-
-
- <h5>Link type "<dfn title="rel-feed"><code>feed</code></dfn>"</h5>
-
- <p>The <code title="rel-feed">feed</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-feed">feed</code> keyword indicates that the
- referenced document is a syndication feed. If the <code
- title="rel-alternate">alternate</code> link type is also specified,
- then the feed is specifically the feed for the current document;
- otherwise, the feed is just a syndication feed, not necessarily
- associated with a particular Web page.</p>
-
- <p>The first <code>link</code>, <code>a</code>, or <code>area</code>
- element in the document (in tree order) that creates a hyperlink
- with the link type <code title="rel-feed">feed</code> must be
- treated as the default syndication feed for the purposes of feed
- autodiscovery.</p>
-
- <p class="note">The <code title="rel-feed">feed</code> keyword is
- implied by the <code title="rel-alternate">alternate</code> link
- type in certain cases (q.v.).</p>
-
- <div class="example">
- <p>The following two <code>link</code> elements are equivalent:
- both give the syndication feed for the current page:</p>
- <pre><link rel="alternate" type="application/atom+xml" href="data.xml"></pre>
- <pre><link rel="feed alternate" href="data.xml"></pre>
- <p>The following extract offers various different syndication
- feeds:</p>
- <pre> <p>You can access the planets database using Atom feeds:</p>
- <ul>
- <li><a href="recently-visited-planets.xml" rel="feed">Recently Visited Planets</a></li>
- <li><a href="known-bad-planets.xml" rel="feed">Known Bad Planets</a></li>
- <li><a href="unexplored-planets.xml" rel="feed">Unexplored Planets</a></li>
- </ul></pre>
- </div>
-
-
- <h5>Link type "<dfn title="rel-help"><code>help</code></dfn>"</h5>
-
- <p>The <code title="rel-help">help</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>For <code>a</code> and <code>area</code> elements, the <code
- title="rel-help">help</code> keyword indicates that the referenced
- document provides further help information for the parent of the
- element defining the hyperlink, and its children.</p>
-
- <div class="example">
-
- <p>In the following example, the form control has associated
- context-sensitive help. The user agent could use this information,
- for example, displaying the referenced document if the user presses
- the "Help" or "F1" key.</p>
-
- <pre> <p><label> Topic: <input name=topic> <a href="help/topic.html" rel="help">(Help)</a></label></p></pre>
-
- </div>
-
- <p>For <code>link</code> elements, the <code
- title="rel-help">help</code> keyword indicates that the referenced
- document provides help for the page as a whole.</p>
-
-
- <h5>Link type "<dfn title="rel-icon"><code>icon</code></dfn>"</h5>
-
- <p>The <code title="rel-icon">icon</code> keyword may be used with
- <code>link</code> elements, for which it creates an <span
- title="external resource link">external resource link</span>.</p>
-
- <p>The specified resource is an icon representing the page or site,
- and should be used by the user agent when representing the page in
- the user interface.</p>
-
- <p>Icons could be auditory icons, visual icons, or other kinds of
- icons. If multiple icons are provided, the user agent must select
- the most appropriate icon according to the <code
- title="attr-link-media">media</code> attribute.</p>
-
-
- <h5>Link type "<dfn title="rel-license"><code>license</code></dfn>"</h5>
-
- <p>The <code title="rel-license">license</code> keyword may be used
- with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-license">license</code> keyword indicates
- that the referenced document provides the copyright license terms
- under which the current document is provided.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keyword "<code title="">copyright</code>" like
- the <code title="rel-license">license</code> keyword.</p>
-
-
- <h5>Link type "<dfn title="rel-nofollow"><code>nofollow</code></dfn>"</h5>
-
- <p>The <code title="rel-nofollow">nofollow</code> keyword may be
- used with <code>a</code> and <code>area</code> elements.</p>
-
- <p>The <code title="rel-nofollow">nofollow</code> keyword indicates
- that the link is not endorsed by the original author or publisher of
- the page.</p>
-
-
- <h5>Link type "<dfn title="rel-pingback"><code>pingback</code></dfn>"</h5>
-
- <p>The <code title="rel-pingback">pingback</code> keyword may be
- used with <code>link</code> elements, for which it creates an <span
- title="external resource link">external resource link</span>.</p>
-
- <p>For the semantics of the <code
- title="rel-pingback">pingback</code> keyword, see the Pingback 1.0
- specification. <a href="#refsPINGBACK">[PINGBACK]</a></p>
-
-
- <h5>Link type "<dfn title="rel-prefetch"><code>prefetch</code></dfn>"</h5>
-
- <p>The <code title="rel-prefetch">prefetch</code> keyword may be
- used with <code>link</code> elements, for which it creates an <span
- title="external resource link">external resource link</span>.</p>
-
- <p>The <code title="rel-prefetch">prefetch</code> keyword indicates
- that preemptively fetching and caching the specified resource is
- likely to be beneficial, as it is highly likely that the user will
- require this resource.</p>
-
-
- <h5>Link type "<dfn title="rel-search"><code>search</code></dfn>"</h5>
-
- <p>The <code title="rel-search">search</code> keyword may be used
- with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-search">search</code> keyword indicates that
- the referenced document provides an interface specifically for
- searching the document and its related resources.</p>
-
- <p class="note">OpenSearch description documents can be used with
- <code>link</code> elements and the <code
- title="rel-search">search</code> link type to enable user agents to
- autodiscover search interfaces.</p>
-
-
- <h5>Link type "<dfn title="rel-stylesheet"><code>stylesheet</code></dfn>"</h5>
-
- <p>The <code title="rel-stylesheet">stylesheet</code> keyword may be
- used with <code>link</code> elements, for which it creates an <span
- title="external resource link">external resource link</span> that
- contributes to the <span>styling processing model</span>.</p>
-
- <p>The specified resource is a resource that describes how to
- present the document. Exactly how the resource is to be processed
- depends on the actual type of the resource.</p>
-
- <p>If the <code title="rel-alternate">alternate</code> keyword is
- also specified on the <code>link</code> element, then the link is an
- alternative stylesheet.</p>
-
-
- <h5>Link type "<dfn title="rel-sidebar"><code>sidebar</code></dfn>"</h5>
-
- <p>The <code title="rel-sidebar">sidebar</code> keyword may be used
- with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-sidebar">sidebar</code> keyword indicates
- that the referenced document, if retrieved, is intended to be shown
- in a <span>secondary browsing context</span> (if possible), instead
- of in the current <span>browsing context</span>.</p>
-
- <p>A <span title="hyperlink">hyperlink element</span> with with the
- <code title="rel-sidebar">sidebar</code> keyword specified is a <dfn
- title="rel-sidebar-hyperlink">sidebar hyperlink</dfn>.</p>
-
-
- <h5>Link type "<dfn title="rel-tag"><code>tag</code></dfn>"</h5>
-
- <p>The <code title="rel-tag">tag</code> keyword may be used
- with <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-tag">tag</code> keyword indicates that the
- <em>tag</em> that the referenced document represents applies to the
- current document.</p>
-
-
- <h5>Hierarchical link types</h5>
-
- <p>Some documents form part of a hierarchical structure of
- documents.</p>
-
- <p>A hierarchical structure of documents is one where each document
- can have various subdocuments. A subdocument is said to be a
- <em>child</em> of the document it is a subdocument of. The document
- of which it is a subdocument is said to be its <em>parent</em>. The
- children of a document have a relative order; the subdocument that
- precedes another is its <em>previous sibling</em>, and the one that
- follows it is its <em>next sibling</em>. A document with no parent
- forms the top of the hierarchy.</p>
-
-
- <h6>Link type "<dfn title="rel-first"><code>first</code></dfn>"</h6>
-
- <p>The <code title="rel-first">first</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-first">first</code> keyword indicates that
- the document is part of a hierarchical structure, and that the link
- is leading to the document that is the first child of the current
- document's parent document.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keywords "<code title="">begin</code>" and
- "<code title="">start</code>" like the <code
- title="rel-first">first</code> keyword.</p>
-
-
- <h6>Link type "<dfn title="rel-index"><code>index</code></dfn>"</h6>
-
- <p>The <code title="rel-index">index</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-index">index</code> keyword indicates that
- the document is part of a hierarchical structure, and that the link
- is leading to the document that is the top of the hierarchy.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keywords "<code title="">top</code>", "<code
- title="">contents</code>", and "<code title="">toc</code>" like the
- <code title="rel-index">index</code> keyword.</p>
-
-
- <h6>Link type "<dfn title="rel-last"><code>last</code></dfn>"</h6>
-
- <p>The <code title="rel-last">last</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-last">last</code> keyword indicates that
- the document is part of a hierarchical structure, and that the link
- is leading to the document that is the last child of the current
- document's parent document.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keyword "<code title="">end</code>" like the
- <code title="rel-last">last</code> keyword.</p>
-
-
- <h6>Link type "<dfn title="rel-next"><code>next</code></dfn>"</h6>
-
- <p>The <code title="rel-next">next</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-next">next</code> keyword indicates that the
- document is part of a hierarchical structure, and that the link is
- leading to the document that is the next sibling of the current
- document.</p>
-
-
- <h6>Link type "<dfn title="rel-prev"><code>prev</code></dfn>"</h6>
-
- <p>The <code title="rel-prev">prev</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-prev">prev</code> keyword indicates that the
- document is part of a hierarchical structure, and that the link is
- leading to the document that is the previous sibling of the current
- document.</p>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat the keyword "<code title="">previous</code>" like
- the <code title="rel-prev">prev</code> keyword.</p>
-
-
- <h6>Link type "<dfn title="rel-up"><code>up</code></dfn>"</h6>
-
- <p>The <code title="rel-up">up</code> keyword may be used with
- <code>link</code>, <code>a</code>, and <code>area</code>
- elements. For <code>link</code> elements, it creates a <span
- title="hyperlink link">hyperlink</span>.</p>
-
- <p>The <code title="rel-up">up</code> keyword indicates that the
- document is part of a hierarchical structure, and that the link is
- leading to the document that is the parent of the current
- document.</p>
-
- <!-- idea: rel="up" vs rel="up up" vs rel="up up up top"
- this would allow you to do breadcrumbs:
- <nav>
- <p>
- <a href="/" rel="top up up up">Main</a> >
- <a href="/products/" rel="up up">Products</a> >
- <a href="/products/dishwashers" rel="up">Dishwashers</a> >
- Second hand
- </p>
- </nav>
- -->
-
-
- <h5>Other link types</h5>
-
- <p>Other than the types defined above, only types defined as
- extensions in the <a
- href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
- RelExtensions page</a> may be used with the <code
- title="">rel</code> attribute on <code>link</code>, <code>a</code>,
- and <code>area</code> elements. <a
- href="#refsWHATWGWIKI">[WHATWGWIKI]</a></p>
-
- <p>Anyone is free to edit the WHATWG Wiki RelExtensions page at any
- time to add a type. Extension types must be specified with the
- following information:</p>
-
- <dl>
-
- <dt>Keyword</dt>
-
- <dd><p>The actual value being defined. The value should not be
- confusingly similar to any other defined value (e.g. differing only
- in case).</p></dd>
-
-
- <dt>Effect on... <code>link</code></dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl>
-
- <dt>not allowed</dt>
-
- <dd>The keyword is not allowed to be specified on
- <code>link</code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on a <code>link</code> element;
- it creates a <span title="hyperlink link">hyperlink
- link</span>.</dd>
-
- <dt>External Resource</dt>
-
- <dd>The keyword may be specified on a <code>link</code> element;
- it creates a <span title="external resource link">external
- resource link</span>.</dd>
-
- </dl>
-
- </dd>
-
-
- <dt>Effect on... <code>a</code> and <code>area</code></dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl>
-
- <dt>not allowed</dt>
-
- <dd>The keyword is not allowed to be specified on <code>a</code>
- and <code>area</code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on <code>a</code> and
- <code>area</code> elements; it creates a <span
- title="hyperlink">hyperlink</span>.</dd>
-
- </dl>
-
- </dd>
-
-
- <dt>Brief description</dt>
-
- <dd><p>A short description of what the keyword's meaning is.</p></dd>
-
-
- <dt>Link to more details</dt>
-
- <dd><p>A link to a more detailed description of the keyword's
- semantics and requirements. It could be another page on the Wiki,
- or a link to an external page.</p></dd>
-
-
- <dt>Synonyms</dt>
-
- <dd><p>A list of other keyword values that have exactly the same
- processing requirements. Authors must not use the values defined to
- be synonyms, they are only intended to allow user agents to support
- legacy content.</p></dd>
-
-
- <dt>Status</dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl>
-
- <dt>Proposal</dt>
-
- <dd>The keyword has not received wide peer review and
- approval. It is included for completeness because pages use the
- keyword. Pages should not use the keyword.</dd>
-
- <dt>Accepted</dt>
-
- <dd>The keyword has received wide peer review and approval. It
- has a specification that unambiguously defines how to handle
- pages that use the keyword, including when they use them in
- incorrect ways. Pages may use the keyword.</dd>
-
- <dt>Rejected</dt>
-
- <dd>The keyword has received wide peer review and it has been
- found to have significant problems. Pages must not use the
- keyword. When a keyword has this status, the "Effect
- on... <code>link</code>" and "Effect on... <code>a</code> and
- <code>area</code>" information should be set to "not
- allowed".</dd>
-
- </dl>
-
- <p>If a keyword is added with the "proposal" status and found to
- be redundant with existing values, it should be removed and listed
- as a synonym for the existing value. If a keyword is added with
- the "proposal" status and found to be harmful, then it should be
- changed to "rejected" status, and its "Effect on..." information
- should be changed accordingly.</p>
-
- </dd>
-
- </dl>
-
- <p>Conformance checkers must use the information given on the WHATWG
- Wiki RelExtensions page to establish if a value not explicitly
- defined in this specification is allowed or not. When an author uses
- a new type not defined by either this specification or the Wiki
- page, conformance checkers should offer to add the value to the
- Wiki, with the details described above, with the "proposal"
- status.</p>
-
- <p>This specification does not define how new values will get
- approved. It is expected that the Wiki will have a community that
- addresses this.</p>
-
-
- <h3>Interfaces for URI manipulation</h3>
-
- <p>An interface that has a complement of <dfn>URI decomposition
- attributes</dfn> will have seven attributes with the following
- definitions:</p>
-
-<pre class="idl">
- attribute DOMString <span title="dom-uda-protocol">protocol</span>;
- attribute DOMString <span title="dom-uda-host">host</span>;
- attribute DOMString <span title="dom-uda-hostname">hostname</span>;
- attribute DOMString <span title="dom-uda-port">port</span>;
- attribute DOMString <span title="dom-uda-pathname">pathname</span>;
- attribute DOMString <span title="dom-uda-search">search</span>;
- attribute DOMString <span title="dom-uda-hash">hash</span>;
-</pre>
-
- <p>The attributes defined to be URI decomposition attributes must
- act as described for the attributes with the same corresponding
- names in this section.</p>
-
- <p>In addition, an interface with a complement of URI decomposition
- attributes will define an <dfn
- title="concept-uda-input">input</dfn>, which is a URI that the
- attributes act on, and a <dfn title="concept-uda-setter">common
- setter action</dfn>, which is a set of steps invoked when any of the
- attributes' setters are invoked.</p>
-
- <p>The seven URI decomposition attributes have similar
- requirements.</p>
-
- <p>On getting, if the <span title="concept-uda-input">input</span>
- fulfills the condition given in the "getter condition" column
- corresponding to the attribute in the table below, the user agent
- must return the part of the <span
- title="concept-uda-input">input</span> URI given in the "component"
- column, with any prefixes specified in the "prefix" column
- appropriately added to the start of the string and any suffixes
- specified in the "suffix" column appropriately added to the end of
- the string. Otherwise, the attribute must return the empty
- string.</p>
-
- <p>On setting, the new value must first be mutated as described by
- the "setter preprocessor" column, then mutated by %-escaping any
- characters in the new value that are not valid in the relevant
- component as given by the "component" column. Then, if the resulting
- new value fulfills the condition given in the "setter condition"
- column, the user agent must make a new string <var
- title="">output</var> by replacing the component of the URI given by
- the "component" column in the <span
- title="concept-uda-input">input</span> URI with the new value;
- otherwise, the user agent must let <var title="">output</var> be
- equal to the <span title="concept-uda-input">input</span>. Finally,
- the user agent must invoke the <span
- title="concept-uda-setter">common setter action</span> with the
- value of <var title="">output</var>.</p>
-
- <p>The rules for parsing and constructing URIs are described in RFC
- 3986 and RFC 3987, as modified by RFC 2732. <a
- href="#refsRFC3986">[RFC3986]</a> <a
- href="#refsRFC3987">[RFC3987]</a> <a
- href="#refsRFC2732">[RFC2732]</a></p>
-
- <table>
- <thead>
- <tr>
- <th>Attribute
- <th>Component
- <th>Getter Condition
- <th>Prefix
- <th>Suffix
- <th>Setter Preprocessor
- <th>Setter Condition
- <tbody>
- <tr>
- <td><dfn title="dom-uda-protocol"><code>protocol</code></dfn>
- <td><scheme>
- <td>—
- <td>—
- <td>U+003A COLON ("<code title="">:</code>")
- <td>Remove all trailing U+003A COLON ("<code title="">:</code>") characters
- <td>The new value is not the empty string
- <tr>
- <td><dfn title="dom-uda-host"><code>host</code></dfn>
- <td><hostport>
- <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
- <td>—
- <td>—
- <td>—
- <td>—
- <tr>
- <td><dfn title="dom-uda-hostname"><code>hostname</code></dfn>
- <td><host>
- <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
- <td>—
- <td>—
- <td>Remove all leading U+002F SOLIDUS ("<code title="">/</code>") characters
- <td>—
- <tr>
- <td><dfn title="dom-uda-port"><code>port</code></dfn>
- <td><port>
- <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
- <td>—
- <td>—
- <td>Remove any characters in the new value that are not in the range U+0030 DIGIT ZERO .. U+0039 DIGIT NINE
- <td>The new value is not the empty string
- <tr>
- <td><dfn title="dom-uda-pathname"><code>pathname</code></dfn>
- <td><abs_path>
- <td><span title="concept-uda-input">input</span> is hierarchical
- <td>—
- <td>—
- <td>If it has no leading U+002F SOLIDUS ("<code title="">/</code>") character, prepend a U+002F SOLIDUS ("<code title="">/</code>") character to the new value
- <td>—
- <tr>
- <td><dfn title="dom-uda-search"><code>search</code></dfn>
- <td><query>
- <td><span title="concept-uda-input">input</span> is hierarchical
- <td>U+003F QUESTION MARK ("<code title="">?</code>")
- <td>—
- <td>Remove one leading U+003F QUESTION MARK ("<code title="">?</code>") character, if any
- <td>—
- <tr>
- <td><dfn title="dom-uda-hash"><code>hash</code></dfn>
- <td><fragment>
- <td>Fragment identifier is longer than zero characters
- <td>U+0023 NUMBER SIGN ("<code title="">#</code>")
- <td>—
- <td>Remove one leading U+0023 NUMBER SIGN ("<code title="">#</code>") character, if any
- <td>—
- </table>
-
-
-<!--
- http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
- http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
- http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
--->
-
-
-
-
<h3>Navigating across documents</h3>
<p>Certain actions cause the <span>browsing context</span> to
@@ -27631,6 +26382,1255 @@
+ <h3 id="links">Links</h3>
+
+
+ <h4>Hyperlink elements</h4>
+
+ <p>The <code>a</code>, <code>area</code>, and <code>link</code>
+ elements can, in certain situations described in the definitions of
+ those elements, represent <dfn
+ 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 URI (or
+ IRI). This URI is the <em>destination resource</em> of the
+ hyperlink.</p>
+
+ <div class="note">
+
+ <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>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</span>. User agents use this name when <span>following
+ hyperlinks</span>.</p></p>
+
+ <p>The <dfn id="ping"
+ title="attr-hyperlink-ping"><code>ping</code></dfn> attribute, if
+ present, gives the URIs of the resources that are interested in
+ being notified if the user follows the hyperlink. The value must be
+ a space separated list of one or more URIs (or IRIs). The value is
+ used by the user agent when <span>following hyperlinks</span>.</p>
+
+ <p>For <code>a</code> and <code>area</code> elements that represent
+ hyperlinks, the relationship between the document containing the
+ hyperlink and the destination resource indicated by the hyperlink is
+ given by the value of the element's <dfn
+ title="attr-hyperlink-rel"><code>rel</code></dfn> attribute, which
+ must be an <span>unordered set of space-separated tokens</span>. The
+ <a href="#linkTypes">allowed values and their meanings</a> are
+ defined below. The <code title="attr-hyperlink-rel">rel</code>
+ attribute has no default value. If the attribute is omitted or if
+ none of the values in the attribute are recognised by the UA, then
+ the document has no particular relationship with the destination
+ resource other than there being a hyperlink between the two.</p>
+
+ <p>The <dfn title="attr-hyperlink-media"><code>media</code></dfn>
+ attribute describes for which media the target document was
+ designed. It is purely advisory. The value must be a valid media
+ query. <a href="#refsMQ">[MQ]</a> The default, if the <code
+ title="attr-hyperlink-media">media</code> attribute is omitted or
+ has an invalid value, is <code>all</code>.</p>
+
+ <p>The <dfn
+ title="attr-hyperlink-hreflang"><code>hreflang</code></dfn>
+ attribute on hyperlink elements, if present, gives the language of
+ the linked resource. It is purely advisory. The value must be a
+ valid RFC 3066 language code. <a href="#refsRFC3066">[RFC3066]</a>
+ User agents must not consider this attribute authoritative —
+ upon fetching the resource, user agents must only use language
+ information associated with the resource to determine its language,
+ not metadata included in the link to the resource.</p>
+
+ <p>The <dfn title="attr-hyperlink-type"><code>type</code></dfn>
+ attribute, if present, gives the MIME type of the linked
+ resource. It is purely advisory. The value must be a valid MIME
+ type, optionally with parameters. <a
+ href="#refsRFC2046">[RFC2046]</a> User agents must not consider the
+ <code title="attr-hyperlink-type">type</code> attribute
+ authoritative — upon fetching the resource, user agents must
+ not use metadata included in the link to the resource to determine
+ its type.</p>
+
+
+
+ <h4><dfn>Following hyperlinks</dfn></h4>
+
+ <p>When a user <em>follows a hyperlink</em>, the user agent must
+ <span>navigate</span> a <span>browsing context</span> to the URI of
+ the hyperlink.
+
+ <p>The URI of the hyperlink is URI given by resolving the the <code
+ title="attr-hyperlink-href">href</code> attribute of that hyperlink
+ relative to the hyperlink's element. In the case of server-side
+ image maps, the URI of the hyperlink must further have its
+ <var>hyperlink suffix</var> appended to it.</p>
+
+ <p>If the user indicated a specific browsing context when following
+ the hyperlink, or if the user agent is configured to follow
+ hyperlinks by navigating a particular browsing context, then that
+ must be the browsing context that is navigated.</p>
+
+ <p>Otherwise, if the hyperlink element is an <code>a</code> or
+ <code>area</code> element that has a <code
+ title="attr-hyperlink-target">target</code> attribute, then the
+ browsing context that is navigated must be chosen by applying
+ <span>the rules for chosing a browsing context given a browsing
+ context name</span>, using the value of the <code
+ title="attr-hyperlink-target">target</code> attribute as the
+ browsing context name. If these rules result in the creation of a
+ new <span>browsing context</span>, it must be navigated with
+ <span>replacement enabled</span>.</p>
+
+ <p>Otherwise, if the hyperlink element is a <span
+ title="rel-sidebar-hyperlink">sidebar hyperlink</span> and the user
+ agent implements a feature that can be considered a secondary
+ browsing context, such a secondary browsing context may be selected
+ as the browsing context to be navigated.</p>
+
+ <p>Otherwise, if the hyperlink element is an <code>a</code> or
+ <code>area</code> element with no <code
+ title="attr-hyperlink-target">target</code> attribute, but one of
+ the child nodes of <span>the <code>head</code> element</span> is a
+ <code>base</code> element with a <code
+ title="attr-base-target">target</code> attribute, then the browsing
+ context that is navigated must be chosen by applying <span>the rules
+ for chosing a browsing context given a browsing context name</span>,
+ using the value of the <code title="attr-base-target">target</code>
+ attribute of the first such <code>base</code> element as the
+ browsing context name. If these rules result in the creation of a
+ new <span>browsing context</span>, it must be navigated with
+ <span>replacement enabled</span>.</p>
+
+ <p>Otherwise, the browsing context that must be navigated is the
+ same browsing context as the one which the hyperlink element itself
+ is in.</p>
+
+
+
+ <h5>Hyperlink auditing</h5>
+
+ <p>If an <code>a</code> or <code>area</code> hyperlink element has a
+ <code title="attr-hyperlink-ping">ping</code> attribute and the user
+ follows the hyperlink, the user agent must take the <code
+ title="attr-hyperlink-ping">ping</code> attribute's value, strip
+ leading and trailing <span title="space character">spaces</span>,
+ split the value on sequences of spaces, treat each resulting part as
+ a URI (resolving relative URIs according to element's base URI) and
+ then should send a request to each of the resulting URIs. This may
+ be done in parallel with the primary request, and is independent of
+ the result of that request.</p>
+
+ <p>User agents should allow the user to adjust this behaviour, for
+ example in conjunction with a setting that disables the sending of
+ HTTP Referrer headers. Based on the user's preferences, UAs may
+ either <span>ignore</span> the <code title="attr-hyperlink-ping">ping</code>
+ attribute altogether, or selectively ignore URIs in the list
+ (e.g. ignoring any third-party URIs).</p>
+
+ <p>For URIs that are HTTP URIs, the requests must be performed using
+ the POST method (with an empty entity body in the request). User
+ agents must ignore any entity bodies returned in the responses, but
+ must, unless otherwise specified by the user, honour the HTTP
+ headers — in particular, HTTP cookie headers. <a
+ href="#refsRFC2965">[RFC2965]</a></p>
+
+ <p class="note">To save bandwidth, implementors might wish to
+ consider omitting optional headers such as <code>Accept</code> from
+ these requests.</p>
+
+ <p>When the <code title="attr-hyperlink-ping">ping</code> attribute is
+ present, user agents should clearly indicate to the user that
+ following the hyperlink will also cause secondary requests to be
+ sent in the background, possibly including listing the actual target
+ URIs.</p>
+
+ <div class="note">
+
+ <p>The <code title="attr-hyperlink-ping">ping</code> attribute is redundant
+ with pre-existing technologies like HTTP redirects and JavaScript
+ in allowing Web pages to track which off-site links are most
+ popular or allowing advertisers to track click-through rates.</p>
+
+ <p>However, the <code title="attr-hyperlink-ping">ping</code> attribute
+ provides these advantages to the user over those alternatives:</p>
+
+ <ul>
+
+ <li>It allows the user to see the final target URI
+ unobscured.</li>
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.</li>
+
+ <li>It allows the paranoid user to disable the notifications
+ without losing the underlying link functionality.</li>
+
+ <li>It allows the UA to optimise the use of available network
+ bandwidth so that the target page loads faster.</li>
+
+ </ul>
+
+ <p>Thus, while it is possible to track users without this feature,
+ authors are encouraged to use the <code
+ title="attr-hyperlink-ping">ping</code> attribute so that the user agent
+ can improve <!-- XXX optimise? --> the user experience.</p> <!--
+ XXX need a better way to end that sentence. It's what I mean, but
+ it sounds kooky. -->
+
+ </div>
+
+
+
+ <h4 id="linkTypes">Link types</h4>
+
+ <p>The following table summarises the link types that are defined by
+ this specification. This table is non-normative; the actual
+ definitions for the link types are given in the next few
+ sections.</p>
+
+ <p>In this section, the term <em>referenced document</em> refers to
+ the resource identified by the element representing the link, and
+ the term <em>current document</em> refers to the resource within
+ which the element representing the link finds itself.</p>
+
+ <p>To determine which link types apply to a <code>link</code>,
+ <code>a</code>, or <code>area</code> element, the element's <code
+ title="">rel</code> attribute must be <span title="split a string on
+ spaces">split on spaces</span>. The resulting tokens are the link
+ types that apply to that element.</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th rowspan="2">Link type</th>
+ <th colspan="2">Effect on...</th>
+ <th rowspan="2">Brief description</th>
+ </tr>
+ <tr>
+ <th><code>link</code></th>
+ <th><code>a</code> and <code>area</code></th>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr>
+ <td><code title="rel-alternate">alternate</code></td> <!-- second most used <link rel> value -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives alternate representations of the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-archives">archives</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-author">author</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a link to the current document's author.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-bookmark">bookmark</code></td> <!-- fourth most used <a rel> value -->
+ <td><em>not allowed</em></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives the permalink for the nearest ancestor section.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-contact">contact</code></td> <!-- 8th most used <a rel> value -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a link to contact information for the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-external">external</code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the referenced document is not part of the same site as the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-feed">feed</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives the address of a syndication feed for the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-first">first</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document is a part of a series, and that the first document in the series is the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-help">help</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Provides a link to context-sensitive help.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-icon">icon</code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
+ <td><span title="external resource link">External Resource</span></td>
+ <td><em>not allowed</em></td>
+ <td>Imports an icon to represent the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-index">index</code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-last">last</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document is a part of a series, and that the last document in the series is the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-license">license</code></td> <!-- seventh most used <a rel> value -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document is covered by the copyright license described by the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-next">next</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document is a part of a series, and that the next document in the series is the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-nofollow">nofollow</code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-pingback">pingback</code></td>
+ <td><span title="external resource link">External Resource</span></td>
+ <td><em>not allowed</em></td>
+ <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-prefetch">prefetch</code></td>
+ <td><span title="external resource link">External Resource</span></td>
+ <td><em>not allowed</em></td>
+ <td>Specifies that the target resource should be pre-emptively cached.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-prev">prev</code></td> <!-- prev is used more than previous -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-search">search</code></td> <!-- used quite a bit -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-stylesheet">stylesheet</code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
+ <td><span title="external resource link">External Resource</span></td>
+ <td><em>not allowed</em></td>
+ <td>Imports a stylesheet.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-sidebar">sidebar</code></td> <!-- used quite a bit -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Specifies that the referenced document, if retrieved, is intended to be shown in the browser's sidebar (if it has one).</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-tag">tag</code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a tag (identified by the given address) that applies to the current document.</td>
+ </tr>
+
+ <tr>
+ <td><code title="rel-up">up</code></td>
+ <td><span title="hyperlink link">Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Provides a link to a document giving the context for the current document.</td>
+ </tr>
+
+ </tbody>
+ </table>
+
+ <p>Some of the types described below list synonyms for these
+ values. These are to be handled as specified by user agents, but
+ must not be used in documents.</p>
+
+
+ <!--XXX
+
+ issues for rel="", etc:
+ rel="alternate stylesheet"
+ rel="script"
+ rel="related" // see also
+ which relationship combinations are allowed
+ what multiple values might mean (multiple <a rel="top"> in the same document)
+ http://www.euronet.nl/~tekelenb/WWW/LINK/
+ http://shift.freezope.org/konq_rellinks/development_html
+ http://hixie.ch/specs/html/link/001
+ http://hixie.ch/specs/html/link/002
+ http://www.hixie.ch/specs/html/metadata
+ what UAs are supposed to do with this
+ do something about http://microformats.org/wiki/rel-enclosure
+
+mpt says:
+> "As with <a> elements, when <link> elements that use these relationships
+> are present, UAs should render them. As with <a> elements, when <link>
+> elements that use these relationships do not exist, UAs should not
+> render them. UAs should not make <link> rendering any easier to hide
+> than <a> rendering."
+
+for microformats (e.g. to refer to an hcard from an hcalendar):
+rel=xref
+<a> and <area> only
+The href attribute's value must start with a '#' character.
+Indicates an in-page cross-reference. For the purposes of data mining tools, the subtree rooted
+at the first element with the given ID must be treated as if it was cloned and replaced the <a> element.
+
+ -->
+
+
+ <h5>Link type "<dfn title="rel-alternate"><code>alternate</code></dfn>"</h5>
+
+ <p>The <code title="rel-alternate">alternate</code> keyword may be
+ used with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, if the <code
+ title="attr-link-rel">rel</code> attribute does not also contain the
+ keyword <code title="rel-stylesheet">stylesheet</code>, it creates a
+ <span title="hyperlink link">hyperlink</span>; but if it
+ <em>does</em> also contains the keyword <code
+ title="rel-stylesheet">stylesheet</code>, the <code
+ title="rel-alternate">alternate</code> keyword instead modifies the
+ meaning of the <code title="rel-stylesheet">stylesheet</code>
+ keyword in the way described for that keyword, and the rest of this
+ subsection doesn't apply.</p>
+
+ <p>The <code title="rel-alternate">alternate</code> keyword
+ indicates that the referenced document is an alternate
+ representation of the current document.</p>
+
+ <p>The nature of the referenced document is given by the <code
+ title="attr-hyperlink-media">media</code>, <code
+ title="attr-hyperlink-hreflang">hreflang</code>, and <code
+ title="attr-hyperlink-type">type</code> attributes.</p>
+
+ <p>If the <code title="rel-alternate">alternate</code> keyword is
+ used with the <code title="attr-hyperlink-media">media</code>
+ attribute, it indicates that the referenced document is intended for use
+ with the media specified.</p>
+
+ <p>If the <code title="rel-alternate">alternate</code> keyword is
+ used with the <code title="attr-hyperlink-hreflang">hreflang</code>
+ attribute, and that attribute's value differs from the <span>root
+ element</span>'s <span>language</span>, it indicates that the
+ referenced document is a translation.</p>
+
+ <p>If the <code title="rel-alternate">alternate</code> keyword is
+ used with the <code title="attr-hyperlink-type">type</code>
+ attribute, it indicates that the referenced document is a
+ reformulation of the current document in the specified format.</p>
+
+ <p>The <code title="attr-hyperlink-media">media</code>, <code
+ title="attr-hyperlink-hreflang">hreflang</code>, and <code
+ title="attr-hyperlink-type">type</code> attributes can be combined
+ when specified with the <code title="rel-alternate">alternate</code>
+ keyword.</p>
+
+ <div class="example">
+
+ <p>For example, the following link is a French translation that
+ uses the PDF format:</p>
+
+ <pre><link rel=alternate type=application/pdf hreflang=fr href=manual-fr></pre>
+
+ </div>
+
+ <p>If the <code title="rel-alternate">alternate</code> keyword is
+ used with the <code title="attr-hyperlink-type">type</code>
+ attribute set to the value <code title="">application/rss+xml</code>
+ or the value <code title="">application/atom+xml</code>, then the
+ user agent must treat the link as it would if it had the <code
+ title="rel-feed">feed</code> keyword specified as well.</p>
+
+ <p>The <code title="rel-alternate">alternate</code> link
+ relationship is transitive — that is, if a document links to
+ two other documents with the link type "<code
+ title="rel-alternate">alternate</code>", then, in addition to
+ implying that those documents are alternative representations of the
+ first document, it is also implying that those two documents are
+ alternative representations of each other.</p>
+
+
+ <h5>Link type "<dfn title="rel-archives"><code>archives</code></dfn>"</h5>
+
+ <p>The <code title="rel-archives">archives</code> keyword may be
+ used with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-archives">archives</code> keyword indicates
+ that the referenced document describes a collection of records,
+ documents, or other materials of historical interest.</p>
+
+ <p class="example">A blog's index page could link to an index of the
+ blog's past posts with <code title="">rel="archives"</code>.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">archive</code>" like the
+ <code title="rel-archives">archives</code> keyword.</p>
+
+
+ <h5>Link type "<dfn title="rel-author"><code>author</code></dfn>"</h5>
+
+ <p>The <code title="rel-author">author</code> keyword may be
+ used with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>For <code>a</code> and <code>area</code> elements, the <code
+ title="rel-author">author</code> keyword indicates that the
+ referenced document provides further information about the author of
+ the section that the element defining the hyperlink <a
+ href="#applyToSection">applies</a> to.</p>
+
+ <p>For <code>link</code> elements, the <code
+ title="rel-author">author</code> keyword indicates that the
+ referenced document provides further information about the author
+ for the page as a whole.</p>
+
+ <p class="note">The "referenced document" can be, and often is, a
+ <code title="">mailto:</code> URI giving the e-mail address of the
+ author. <a href="#refsMAILTO">[MAILTO]</a></p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat <code>link</code>, <code>a</code>, and
+ <code>area</code> elements that have a <code title="">rev</code>
+ attribute with the value "<code>made</code>" as having the <code
+ title="rel-author">author</code> keyword specified as a link
+ relationship.</p>
+
+
+ <h5>Link type "<dfn title="rel-bookmark"><code>bookmark</code></dfn>"</h5>
+
+ <p>The <code title="rel-bookmark">bookmark</code> keyword may be
+ used with <code>a</code> and <code>area</code> elements.</p>
+
+ <p>The <code title="rel-bookmark">bookmark</code> keyword gives a
+ permalink for the nearest ancestor <code>article</code> element of
+ the linking element in question, or of <a
+ href="#associatedSection">the section the linking element is most
+ closely associated with</a>, if there are no ancestor
+ <code>article</code> elements.</p>
+
+ <div class="example">
+ <p>The following snippet has three permalinks. A user agent could
+ determine which permalink applies to which part of the spec by
+ looking at where the permalinks are given.</p>
+ <pre> ...
+ <body>
+ <h1>Example of permalinks</h1>
+ <div id="a">
+ <h2>First example</h2>
+ <p><a href="a.html" rel="bookmark">This</a> permalink applies to
+ only the content from the first H2 to the second H2. The DIV isn't
+ exactly that section, but it roughly corresponds to it.</p>
+ </div>
+ <h2>Second example</h2>
+ <article id="b">
+ <p><a href="b.html" rel="bookmark">This</a> permalink applies to
+ the outer ARTICLE element (which could be, e.g., a blog post).</p>
+ <article id="c">
+ <p><a href="c.html" rel="bookmark">This</a> permalink applies to
+ the inner ARTICLE element (which could be, e.g., a blog comment).</p>
+ </article>
+ </article>
+ </body>
+ ...</pre>
+ </div>
+
+
+ <h5>Link type "<dfn title="rel-contact"><code>contact</code></dfn>"</h5>
+
+ <p>The <code title="rel-contact">contact</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>For <code>a</code> and <code>area</code> elements, the <code
+ title="rel-contact">contact</code> keyword indicates that the
+ referenced document provides further contact information for the
+ section that the element defining the hyperlink <a
+ href="#applyToSection">applies</a> to.</p>
+
+ <p>User agents must treat any hyperlink in an <code>address</code>
+ element as having the <code title="rel-contact">contact</code> link
+ type specified.</p>
+
+ <p>For <code>link</code> elements, the <code
+ title="rel-contact">contact</code> keyword indicates that the
+ referenced document provides further contact information for the
+ page as a whole.</p>
+
+
+ <h5>Link type "<dfn title="rel-external"><code>external</code></dfn>"</h5>
+
+ <p>The <code title="rel-external">external</code> keyword may be
+ used with <code>a</code> and <code>area</code> elements.</p>
+
+ <p>The <code title="rel-external">external</code> keyword indicates
+ that the link is leading to a document that is not part of the site
+ that the current document forms a part of.</p>
+
+
+ <h5>Link type "<dfn title="rel-feed"><code>feed</code></dfn>"</h5>
+
+ <p>The <code title="rel-feed">feed</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-feed">feed</code> keyword indicates that the
+ referenced document is a syndication feed. If the <code
+ title="rel-alternate">alternate</code> link type is also specified,
+ then the feed is specifically the feed for the current document;
+ otherwise, the feed is just a syndication feed, not necessarily
+ associated with a particular Web page.</p>
+
+ <p>The first <code>link</code>, <code>a</code>, or <code>area</code>
+ element in the document (in tree order) that creates a hyperlink
+ with the link type <code title="rel-feed">feed</code> must be
+ treated as the default syndication feed for the purposes of feed
+ autodiscovery.</p>
+
+ <p class="note">The <code title="rel-feed">feed</code> keyword is
+ implied by the <code title="rel-alternate">alternate</code> link
+ type in certain cases (q.v.).</p>
+
+ <div class="example">
+ <p>The following two <code>link</code> elements are equivalent:
+ both give the syndication feed for the current page:</p>
+ <pre><link rel="alternate" type="application/atom+xml" href="data.xml"></pre>
+ <pre><link rel="feed alternate" href="data.xml"></pre>
+ <p>The following extract offers various different syndication
+ feeds:</p>
+ <pre> <p>You can access the planets database using Atom feeds:</p>
+ <ul>
+ <li><a href="recently-visited-planets.xml" rel="feed">Recently Visited Planets</a></li>
+ <li><a href="known-bad-planets.xml" rel="feed">Known Bad Planets</a></li>
+ <li><a href="unexplored-planets.xml" rel="feed">Unexplored Planets</a></li>
+ </ul></pre>
+ </div>
+
+
+ <h5>Link type "<dfn title="rel-help"><code>help</code></dfn>"</h5>
+
+ <p>The <code title="rel-help">help</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>For <code>a</code> and <code>area</code> elements, the <code
+ title="rel-help">help</code> keyword indicates that the referenced
+ document provides further help information for the parent of the
+ element defining the hyperlink, and its children.</p>
+
+ <div class="example">
+
+ <p>In the following example, the form control has associated
+ context-sensitive help. The user agent could use this information,
+ for example, displaying the referenced document if the user presses
+ the "Help" or "F1" key.</p>
+
+ <pre> <p><label> Topic: <input name=topic> <a href="help/topic.html" rel="help">(Help)</a></label></p></pre>
+
+ </div>
+
+ <p>For <code>link</code> elements, the <code
+ title="rel-help">help</code> keyword indicates that the referenced
+ document provides help for the page as a whole.</p>
+
+
+ <h5>Link type "<dfn title="rel-icon"><code>icon</code></dfn>"</h5>
+
+ <p>The <code title="rel-icon">icon</code> keyword may be used with
+ <code>link</code> elements, for which it creates an <span
+ title="external resource link">external resource link</span>.</p>
+
+ <p>The specified resource is an icon representing the page or site,
+ and should be used by the user agent when representing the page in
+ the user interface.</p>
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of
+ icons. If multiple icons are provided, the user agent must select
+ the most appropriate icon according to the <code
+ title="attr-link-media">media</code> attribute.</p>
+
+
+ <h5>Link type "<dfn title="rel-license"><code>license</code></dfn>"</h5>
+
+ <p>The <code title="rel-license">license</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-license">license</code> keyword indicates
+ that the referenced document provides the copyright license terms
+ under which the current document is provided.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">copyright</code>" like
+ the <code title="rel-license">license</code> keyword.</p>
+
+
+ <h5>Link type "<dfn title="rel-nofollow"><code>nofollow</code></dfn>"</h5>
+
+ <p>The <code title="rel-nofollow">nofollow</code> keyword may be
+ used with <code>a</code> and <code>area</code> elements.</p>
+
+ <p>The <code title="rel-nofollow">nofollow</code> keyword indicates
+ that the link is not endorsed by the original author or publisher of
+ the page.</p>
+
+
+ <h5>Link type "<dfn title="rel-pingback"><code>pingback</code></dfn>"</h5>
+
+ <p>The <code title="rel-pingback">pingback</code> keyword may be
+ used with <code>link</code> elements, for which it creates an <span
+ title="external resource link">external resource link</span>.</p>
+
+ <p>For the semantics of the <code
+ title="rel-pingback">pingback</code> keyword, see the Pingback 1.0
+ specification. <a href="#refsPINGBACK">[PINGBACK]</a></p>
+
+
+ <h5>Link type "<dfn title="rel-prefetch"><code>prefetch</code></dfn>"</h5>
+
+ <p>The <code title="rel-prefetch">prefetch</code> keyword may be
+ used with <code>link</code> elements, for which it creates an <span
+ title="external resource link">external resource link</span>.</p>
+
+ <p>The <code title="rel-prefetch">prefetch</code> keyword indicates
+ that preemptively fetching and caching the specified resource is
+ likely to be beneficial, as it is highly likely that the user will
+ require this resource.</p>
+
+
+ <h5>Link type "<dfn title="rel-search"><code>search</code></dfn>"</h5>
+
+ <p>The <code title="rel-search">search</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-search">search</code> keyword indicates that
+ the referenced document provides an interface specifically for
+ searching the document and its related resources.</p>
+
+ <p class="note">OpenSearch description documents can be used with
+ <code>link</code> elements and the <code
+ title="rel-search">search</code> link type to enable user agents to
+ autodiscover search interfaces.</p>
+
+
+ <h5>Link type "<dfn title="rel-stylesheet"><code>stylesheet</code></dfn>"</h5>
+
+ <p>The <code title="rel-stylesheet">stylesheet</code> keyword may be
+ used with <code>link</code> elements, for which it creates an <span
+ title="external resource link">external resource link</span> that
+ contributes to the <span>styling processing model</span>.</p>
+
+ <p>The specified resource is a resource that describes how to
+ present the document. Exactly how the resource is to be processed
+ depends on the actual type of the resource.</p>
+
+ <p>If the <code title="rel-alternate">alternate</code> keyword is
+ also specified on the <code>link</code> element, then the link is an
+ alternative stylesheet.</p>
+
+
+ <h5>Link type "<dfn title="rel-sidebar"><code>sidebar</code></dfn>"</h5>
+
+ <p>The <code title="rel-sidebar">sidebar</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-sidebar">sidebar</code> keyword indicates
+ that the referenced document, if retrieved, is intended to be shown
+ in a <span>secondary browsing context</span> (if possible), instead
+ of in the current <span>browsing context</span>.</p>
+
+ <p>A <span title="hyperlink">hyperlink element</span> with with the
+ <code title="rel-sidebar">sidebar</code> keyword specified is a <dfn
+ title="rel-sidebar-hyperlink">sidebar hyperlink</dfn>.</p>
+
+
+ <h5>Link type "<dfn title="rel-tag"><code>tag</code></dfn>"</h5>
+
+ <p>The <code title="rel-tag">tag</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-tag">tag</code> keyword indicates that the
+ <em>tag</em> that the referenced document represents applies to the
+ current document.</p>
+
+
+ <h5>Hierarchical link types</h5>
+
+ <p>Some documents form part of a hierarchical structure of
+ documents.</p>
+
+ <p>A hierarchical structure of documents is one where each document
+ can have various subdocuments. A subdocument is said to be a
+ <em>child</em> of the document it is a subdocument of. The document
+ of which it is a subdocument is said to be its <em>parent</em>. The
+ children of a document have a relative order; the subdocument that
+ precedes another is its <em>previous sibling</em>, and the one that
+ follows it is its <em>next sibling</em>. A document with no parent
+ forms the top of the hierarchy.</p>
+
+
+ <h6>Link type "<dfn title="rel-first"><code>first</code></dfn>"</h6>
+
+ <p>The <code title="rel-first">first</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-first">first</code> keyword indicates that
+ the document is part of a hierarchical structure, and that the link
+ is leading to the document that is the first child of the current
+ document's parent document.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keywords "<code title="">begin</code>" and
+ "<code title="">start</code>" like the <code
+ title="rel-first">first</code> keyword.</p>
+
+
+ <h6>Link type "<dfn title="rel-index"><code>index</code></dfn>"</h6>
+
+ <p>The <code title="rel-index">index</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-index">index</code> keyword indicates that
+ the document is part of a hierarchical structure, and that the link
+ is leading to the document that is the top of the hierarchy.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keywords "<code title="">top</code>", "<code
+ title="">contents</code>", and "<code title="">toc</code>" like the
+ <code title="rel-index">index</code> keyword.</p>
+
+
+ <h6>Link type "<dfn title="rel-last"><code>last</code></dfn>"</h6>
+
+ <p>The <code title="rel-last">last</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-last">last</code> keyword indicates that
+ the document is part of a hierarchical structure, and that the link
+ is leading to the document that is the last child of the current
+ document's parent document.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">end</code>" like the
+ <code title="rel-last">last</code> keyword.</p>
+
+
+ <h6>Link type "<dfn title="rel-next"><code>next</code></dfn>"</h6>
+
+ <p>The <code title="rel-next">next</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-next">next</code> keyword indicates that the
+ document is part of a hierarchical structure, and that the link is
+ leading to the document that is the next sibling of the current
+ document.</p>
+
+
+ <h6>Link type "<dfn title="rel-prev"><code>prev</code></dfn>"</h6>
+
+ <p>The <code title="rel-prev">prev</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-prev">prev</code> keyword indicates that the
+ document is part of a hierarchical structure, and that the link is
+ leading to the document that is the previous sibling of the current
+ document.</p>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">previous</code>" like
+ the <code title="rel-prev">prev</code> keyword.</p>
+
+
+ <h6>Link type "<dfn title="rel-up"><code>up</code></dfn>"</h6>
+
+ <p>The <code title="rel-up">up</code> keyword may be used with
+ <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. For <code>link</code> elements, it creates a <span
+ title="hyperlink link">hyperlink</span>.</p>
+
+ <p>The <code title="rel-up">up</code> keyword indicates that the
+ document is part of a hierarchical structure, and that the link is
+ leading to the document that is the parent of the current
+ document.</p>
+
+ <!-- idea: rel="up" vs rel="up up" vs rel="up up up top"
+ this would allow you to do breadcrumbs:
+ <nav>
+ <p>
+ <a href="/" rel="top up up up">Main</a> >
+ <a href="/products/" rel="up up">Products</a> >
+ <a href="/products/dishwashers" rel="up">Dishwashers</a> >
+ Second hand
+ </p>
+ </nav>
+ -->
+
+
+ <h5>Other link types</h5>
+
+ <p>Other than the types defined above, only types defined as
+ extensions in the <a
+ href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
+ RelExtensions page</a> may be used with the <code
+ title="">rel</code> attribute on <code>link</code>, <code>a</code>,
+ and <code>area</code> elements. <a
+ href="#refsWHATWGWIKI">[WHATWGWIKI]</a></p>
+
+ <p>Anyone is free to edit the WHATWG Wiki RelExtensions page at any
+ time to add a type. Extension types must be specified with the
+ following information:</p>
+
+ <dl>
+
+ <dt>Keyword</dt>
+
+ <dd><p>The actual value being defined. The value should not be
+ confusingly similar to any other defined value (e.g. differing only
+ in case).</p></dd>
+
+
+ <dt>Effect on... <code>link</code></dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl>
+
+ <dt>not allowed</dt>
+
+ <dd>The keyword is not allowed to be specified on
+ <code>link</code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on a <code>link</code> element;
+ it creates a <span title="hyperlink link">hyperlink
+ link</span>.</dd>
+
+ <dt>External Resource</dt>
+
+ <dd>The keyword may be specified on a <code>link</code> element;
+ it creates a <span title="external resource link">external
+ resource link</span>.</dd>
+
+ </dl>
+
+ </dd>
+
+
+ <dt>Effect on... <code>a</code> and <code>area</code></dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl>
+
+ <dt>not allowed</dt>
+
+ <dd>The keyword is not allowed to be specified on <code>a</code>
+ and <code>area</code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on <code>a</code> and
+ <code>area</code> elements; it creates a <span
+ title="hyperlink">hyperlink</span>.</dd>
+
+ </dl>
+
+ </dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short description of what the keyword's meaning is.</p></dd>
+
+
+ <dt>Link to more details</dt>
+
+ <dd><p>A link to a more detailed description of the keyword's
+ semantics and requirements. It could be another page on the Wiki,
+ or a link to an external page.</p></dd>
+
+
+ <dt>Synonyms</dt>
+
+ <dd><p>A list of other keyword values that have exactly the same
+ processing requirements. Authors must not use the values defined to
+ be synonyms, they are only intended to allow user agents to support
+ legacy content.</p></dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl>
+
+ <dt>Proposal</dt>
+
+ <dd>The keyword has not received wide peer review and
+ approval. It is included for completeness because pages use the
+ keyword. Pages should not use the keyword.</dd>
+
+ <dt>Accepted</dt>
+
+ <dd>The keyword has received wide peer review and approval. It
+ has a specification that unambiguously defines how to handle
+ pages that use the keyword, including when they use them in
+ incorrect ways. Pages may use the keyword.</dd>
+
+ <dt>Rejected</dt>
+
+ <dd>The keyword has received wide peer review and it has been
+ found to have significant problems. Pages must not use the
+ keyword. When a keyword has this status, the "Effect
+ on... <code>link</code>" and "Effect on... <code>a</code> and
+ <code>area</code>" information should be set to "not
+ allowed".</dd>
+
+ </dl>
+
+ <p>If a keyword is added with the "proposal" status and found to
+ be redundant with existing values, it should be removed and listed
+ as a synonym for the existing value. If a keyword is added with
+ the "proposal" status and found to be harmful, then it should be
+ changed to "rejected" status, and its "Effect on..." information
+ should be changed accordingly.</p>
+
+ </dd>
+
+ </dl>
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki RelExtensions page to establish if a value not explicitly
+ defined in this specification is allowed or not. When an author uses
+ a new type not defined by either this specification or the Wiki
+ page, conformance checkers should offer to add the value to the
+ Wiki, with the details described above, with the "proposal"
+ status.</p>
+
+ <p>This specification does not define how new values will get
+ approved. It is expected that the Wiki will have a community that
+ addresses this.</p>
+
+
+ <h3>Interfaces for URI manipulation</h3>
+
+ <p>An interface that has a complement of <dfn>URI decomposition
+ attributes</dfn> will have seven attributes with the following
+ definitions:</p>
+
+<pre class="idl">
+ attribute DOMString <span title="dom-uda-protocol">protocol</span>;
+ attribute DOMString <span title="dom-uda-host">host</span>;
+ attribute DOMString <span title="dom-uda-hostname">hostname</span>;
+ attribute DOMString <span title="dom-uda-port">port</span>;
+ attribute DOMString <span title="dom-uda-pathname">pathname</span>;
+ attribute DOMString <span title="dom-uda-search">search</span>;
+ attribute DOMString <span title="dom-uda-hash">hash</span>;
+</pre>
+
+ <p>The attributes defined to be URI decomposition attributes must
+ act as described for the attributes with the same corresponding
+ names in this section.</p>
+
+ <p>In addition, an interface with a complement of URI decomposition
+ attributes will define an <dfn
+ title="concept-uda-input">input</dfn>, which is a URI that the
+ attributes act on, and a <dfn title="concept-uda-setter">common
+ setter action</dfn>, which is a set of steps invoked when any of the
+ attributes' setters are invoked.</p>
+
+ <p>The seven URI decomposition attributes have similar
+ requirements.</p>
+
+ <p>On getting, if the <span title="concept-uda-input">input</span>
+ fulfills the condition given in the "getter condition" column
+ corresponding to the attribute in the table below, the user agent
+ must return the part of the <span
+ title="concept-uda-input">input</span> URI given in the "component"
+ column, with any prefixes specified in the "prefix" column
+ appropriately added to the start of the string and any suffixes
+ specified in the "suffix" column appropriately added to the end of
+ the string. Otherwise, the attribute must return the empty
+ string.</p>
+
+ <p>On setting, the new value must first be mutated as described by
+ the "setter preprocessor" column, then mutated by %-escaping any
+ characters in the new value that are not valid in the relevant
+ component as given by the "component" column. Then, if the resulting
+ new value fulfills the condition given in the "setter condition"
+ column, the user agent must make a new string <var
+ title="">output</var> by replacing the component of the URI given by
+ the "component" column in the <span
+ title="concept-uda-input">input</span> URI with the new value;
+ otherwise, the user agent must let <var title="">output</var> be
+ equal to the <span title="concept-uda-input">input</span>. Finally,
+ the user agent must invoke the <span
+ title="concept-uda-setter">common setter action</span> with the
+ value of <var title="">output</var>.</p>
+
+ <p>The rules for parsing and constructing URIs are described in RFC
+ 3986 and RFC 3987, as modified by RFC 2732. <a
+ href="#refsRFC3986">[RFC3986]</a> <a
+ href="#refsRFC3987">[RFC3987]</a> <a
+ href="#refsRFC2732">[RFC2732]</a></p>
+
+ <table>
+ <thead>
+ <tr>
+ <th>Attribute
+ <th>Component
+ <th>Getter Condition
+ <th>Prefix
+ <th>Suffix
+ <th>Setter Preprocessor
+ <th>Setter Condition
+ <tbody>
+ <tr>
+ <td><dfn title="dom-uda-protocol"><code>protocol</code></dfn>
+ <td><scheme>
+ <td>—
+ <td>—
+ <td>U+003A COLON ("<code title="">:</code>")
+ <td>Remove all trailing U+003A COLON ("<code title="">:</code>") characters
+ <td>The new value is not the empty string
+ <tr>
+ <td><dfn title="dom-uda-host"><code>host</code></dfn>
+ <td><hostport>
+ <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
+ <td>—
+ <td>—
+ <td>—
+ <td>—
+ <tr>
+ <td><dfn title="dom-uda-hostname"><code>hostname</code></dfn>
+ <td><host>
+ <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
+ <td>—
+ <td>—
+ <td>Remove all leading U+002F SOLIDUS ("<code title="">/</code>") characters
+ <td>—
+ <tr>
+ <td><dfn title="dom-uda-port"><code>port</code></dfn>
+ <td><port>
+ <td><span title="concept-uda-input">input</span> is hierarchical and uses a server-based naming authority
+ <td>—
+ <td>—
+ <td>Remove any characters in the new value that are not in the range U+0030 DIGIT ZERO .. U+0039 DIGIT NINE
+ <td>The new value is not the empty string
+ <tr>
+ <td><dfn title="dom-uda-pathname"><code>pathname</code></dfn>
+ <td><abs_path>
+ <td><span title="concept-uda-input">input</span> is hierarchical
+ <td>—
+ <td>—
+ <td>If it has no leading U+002F SOLIDUS ("<code title="">/</code>") character, prepend a U+002F SOLIDUS ("<code title="">/</code>") character to the new value
+ <td>—
+ <tr>
+ <td><dfn title="dom-uda-search"><code>search</code></dfn>
+ <td><query>
+ <td><span title="concept-uda-input">input</span> is hierarchical
+ <td>U+003F QUESTION MARK ("<code title="">?</code>")
+ <td>—
+ <td>Remove one leading U+003F QUESTION MARK ("<code title="">?</code>") character, if any
+ <td>—
+ <tr>
+ <td><dfn title="dom-uda-hash"><code>hash</code></dfn>
+ <td><fragment>
+ <td>Fragment identifier is longer than zero characters
+ <td>U+0023 NUMBER SIGN ("<code title="">#</code>")
+ <td>—
+ <td>Remove one leading U+0023 NUMBER SIGN ("<code title="">#</code>") character, if any
+ <td>—
+ </table>
+
+
+<!--
+ http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
+ http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
+ http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
+-->
+
+
+
<h2 id="editing"><dfn>Editing</dfn></h2>
<p>This section describes various features that allow authors to
More information about the Commit-Watchers
mailing list