[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