[html5] r4666 - [e] (0) Move Links up to the Elements section, where it makes more sense. Fixing [...]
whatwg at whatwg.org
whatwg at whatwg.org
Fri Feb 5 15:16:43 PST 2010
Author: ianh
Date: 2010-02-05 15:16:41 -0800 (Fri, 05 Feb 2010)
New Revision: 4666
Modified:
complete.html
index
source
Log:
[e] (0) Move Links up to the Elements section, where it makes more sense.
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=8689
Modified: complete.html
===================================================================
--- complete.html 2010-02-05 23:09:54 UTC (rev 4665)
+++ complete.html 2010-02-05 23:16:41 UTC (rev 4666)
@@ -598,15 +598,50 @@
<li><a href=#devices><span class=secno>4.11.6 </span>The <code>device</code> element</a>
<ol>
<li><a href=#stream-api><span class=secno>4.11.6.1 </span>Stream API</a></ol></ol></li>
- <li><a href=#common-idioms-without-dedicated-elements><span class=secno>4.12 </span>Common idioms without dedicated elements</a>
+ <li><a href=#links><span class=secno>4.12 </span>Links</a>
<ol>
- <li><a href=#tag-clouds><span class=secno>4.12.1 </span>Tag clouds</a></li>
- <li><a href=#conversations><span class=secno>4.12.2 </span>Conversations</a></li>
- <li><a href=#footnotes><span class=secno>4.12.3 </span>Footnotes</a></ol></li>
- <li><a href=#matching-html-elements-using-selectors><span class=secno>4.13 </span>Matching HTML elements using selectors</a>
+ <li><a href=#hyperlink-elements><span class=secno>4.12.1 </span>Hyperlink elements</a></li>
+ <li><a href=#following-hyperlinks><span class=secno>4.12.2 </span>Following hyperlinks</a>
+ <ol>
+ <li><a href=#hyperlink-auditing><span class=secno>4.12.2.1 </span>Hyperlink auditing</a></ol></li>
+ <li><a href=#linkTypes><span class=secno>4.12.3 </span>Link types</a>
+ <ol>
+ <li><a href=#link-type-alternate><span class=secno>4.12.3.1 </span>Link type "<code>alternate</code>"</a></li>
+ <li><a href=#link-type-archives><span class=secno>4.12.3.2 </span>Link type "<code>archives</code>"</a></li>
+ <li><a href=#link-type-author><span class=secno>4.12.3.3 </span>Link type "<code>author</code>"</a></li>
+ <li><a href=#link-type-bookmark><span class=secno>4.12.3.4 </span>Link type "<code>bookmark</code>"</a></li>
+ <li><a href=#link-type-external><span class=secno>4.12.3.5 </span>Link type "<code>external</code>"</a></li>
+ <li><a href=#link-type-help><span class=secno>4.12.3.6 </span>Link type "<code>help</code>"</a></li>
+ <li><a href=#rel-icon><span class=secno>4.12.3.7 </span>Link type "<code>icon</code>"</a></li>
+ <li><a href=#link-type-license><span class=secno>4.12.3.8 </span>Link type "<code>license</code>"</a></li>
+ <li><a href=#link-type-nofollow><span class=secno>4.12.3.9 </span>Link type "<code>nofollow</code>"</a></li>
+ <li><a href=#link-type-noreferrer><span class=secno>4.12.3.10 </span>Link type "<code>noreferrer</code>"</a></li>
+ <li><a href=#link-type-pingback><span class=secno>4.12.3.11 </span>Link type "<code>pingback</code>"</a></li>
+ <li><a href=#link-type-prefetch><span class=secno>4.12.3.12 </span>Link type "<code>prefetch</code>"</a></li>
+ <li><a href=#link-type-search><span class=secno>4.12.3.13 </span>Link type "<code>search</code>"</a></li>
+ <li><a href=#link-type-stylesheet><span class=secno>4.12.3.14 </span>Link type "<code>stylesheet</code>"</a></li>
+ <li><a href=#link-type-sidebar><span class=secno>4.12.3.15 </span>Link type "<code>sidebar</code>"</a></li>
+ <li><a href=#link-type-tag><span class=secno>4.12.3.16 </span>Link type "<code>tag</code>"</a></li>
+ <li><a href=#hierarchical-link-types><span class=secno>4.12.3.17 </span>Hierarchical link types</a>
+ <ol>
+ <li><a href=#link-type-index><span class=secno>4.12.3.17.1 </span>Link type "<code>index</code>"</a></li>
+ <li><a href=#link-type-up><span class=secno>4.12.3.17.2 </span>Link type "<code>up</code>"</a></ol></li>
+ <li><a href=#sequential-link-types><span class=secno>4.12.3.18 </span>Sequential link types</a>
+ <ol>
+ <li><a href=#link-type-first><span class=secno>4.12.3.18.1 </span>Link type "<code>first</code>"</a></li>
+ <li><a href=#link-type-last><span class=secno>4.12.3.18.2 </span>Link type "<code>last</code>"</a></li>
+ <li><a href=#link-type-next><span class=secno>4.12.3.18.3 </span>Link type "<code>next</code>"</a></li>
+ <li><a href=#link-type-prev><span class=secno>4.12.3.18.4 </span>Link type "<code>prev</code>"</a></ol></li>
+ <li><a href=#other-link-types><span class=secno>4.12.3.19 </span>Other link types</a></ol></ol></li>
+ <li><a href=#common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</a>
<ol>
- <li><a href=#selectors><span class=secno>4.13.1 </span>Case-sensitivity</a></li>
- <li><a href=#pseudo-classes><span class=secno>4.13.2 </span>Pseudo-classes</a></ol></ol></li>
+ <li><a href=#tag-clouds><span class=secno>4.13.1 </span>Tag clouds</a></li>
+ <li><a href=#conversations><span class=secno>4.13.2 </span>Conversations</a></li>
+ <li><a href=#footnotes><span class=secno>4.13.3 </span>Footnotes</a></ol></li>
+ <li><a href=#matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</a>
+ <ol>
+ <li><a href=#selectors><span class=secno>4.14.1 </span>Case-sensitivity</a></li>
+ <li><a href=#pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</a></ol></ol></li>
<li><a href=#microdata><span class=secno>5 </span>Microdata</a>
<ol>
<li><a href=#introduction-1><span class=secno>5.1 </span>Introduction</a>
@@ -750,42 +785,7 @@
<li><a href=#unloading-documents><span class=secno>6.11.10 </span>Unloading documents</a>
<ol>
<li><a href=#event-definition><span class=secno>6.11.10.1 </span>Event definition</a></ol></li>
- <li><a href=#aborting-a-document-load><span class=secno>6.11.11 </span>Aborting a document load</a></ol></li>
- <li><a href=#links><span class=secno>6.12 </span>Links</a>
- <ol>
- <li><a href=#hyperlink-elements><span class=secno>6.12.1 </span>Hyperlink elements</a></li>
- <li><a href=#following-hyperlinks><span class=secno>6.12.2 </span>Following hyperlinks</a>
- <ol>
- <li><a href=#hyperlink-auditing><span class=secno>6.12.2.1 </span>Hyperlink auditing</a></ol></li>
- <li><a href=#linkTypes><span class=secno>6.12.3 </span>Link types</a>
- <ol>
- <li><a href=#link-type-alternate><span class=secno>6.12.3.1 </span>Link type "<code>alternate</code>"</a></li>
- <li><a href=#link-type-archives><span class=secno>6.12.3.2 </span>Link type "<code>archives</code>"</a></li>
- <li><a href=#link-type-author><span class=secno>6.12.3.3 </span>Link type "<code>author</code>"</a></li>
- <li><a href=#link-type-bookmark><span class=secno>6.12.3.4 </span>Link type "<code>bookmark</code>"</a></li>
- <li><a href=#link-type-external><span class=secno>6.12.3.5 </span>Link type "<code>external</code>"</a></li>
- <li><a href=#link-type-help><span class=secno>6.12.3.6 </span>Link type "<code>help</code>"</a></li>
- <li><a href=#rel-icon><span class=secno>6.12.3.7 </span>Link type "<code>icon</code>"</a></li>
- <li><a href=#link-type-license><span class=secno>6.12.3.8 </span>Link type "<code>license</code>"</a></li>
- <li><a href=#link-type-nofollow><span class=secno>6.12.3.9 </span>Link type "<code>nofollow</code>"</a></li>
- <li><a href=#link-type-noreferrer><span class=secno>6.12.3.10 </span>Link type "<code>noreferrer</code>"</a></li>
- <li><a href=#link-type-pingback><span class=secno>6.12.3.11 </span>Link type "<code>pingback</code>"</a></li>
- <li><a href=#link-type-prefetch><span class=secno>6.12.3.12 </span>Link type "<code>prefetch</code>"</a></li>
- <li><a href=#link-type-search><span class=secno>6.12.3.13 </span>Link type "<code>search</code>"</a></li>
- <li><a href=#link-type-stylesheet><span class=secno>6.12.3.14 </span>Link type "<code>stylesheet</code>"</a></li>
- <li><a href=#link-type-sidebar><span class=secno>6.12.3.15 </span>Link type "<code>sidebar</code>"</a></li>
- <li><a href=#link-type-tag><span class=secno>6.12.3.16 </span>Link type "<code>tag</code>"</a></li>
- <li><a href=#hierarchical-link-types><span class=secno>6.12.3.17 </span>Hierarchical link types</a>
- <ol>
- <li><a href=#link-type-index><span class=secno>6.12.3.17.1 </span>Link type "<code>index</code>"</a></li>
- <li><a href=#link-type-up><span class=secno>6.12.3.17.2 </span>Link type "<code>up</code>"</a></ol></li>
- <li><a href=#sequential-link-types><span class=secno>6.12.3.18 </span>Sequential link types</a>
- <ol>
- <li><a href=#link-type-first><span class=secno>6.12.3.18.1 </span>Link type "<code>first</code>"</a></li>
- <li><a href=#link-type-last><span class=secno>6.12.3.18.2 </span>Link type "<code>last</code>"</a></li>
- <li><a href=#link-type-next><span class=secno>6.12.3.18.3 </span>Link type "<code>next</code>"</a></li>
- <li><a href=#link-type-prev><span class=secno>6.12.3.18.4 </span>Link type "<code>prev</code>"</a></ol></li>
- <li><a href=#other-link-types><span class=secno>6.12.3.19 </span>Other link types</a></ol></ol></ol></li>
+ <li><a href=#aborting-a-document-load><span class=secno>6.11.11 </span>Aborting a document load</a></ol></ol></li>
<li><a href=#webstorage><span class=secno>7 </span>Web Storage</a>
<ol>
<li><a href=#introduction-4><span class=secno>7.1 </span>Introduction</a></li>
@@ -44455,10 +44455,1343 @@
- <h3 id=common-idioms-without-dedicated-elements><span class=secno>4.12 </span>Common idioms without dedicated elements</h3>
- <h4 id=tag-clouds><span class=secno>4.12.1 </span>Tag clouds</h4>
+ <h3 id=links><span class=secno>4.12 </span>Links</h3>
+
+ <h4 id=hyperlink-elements><span class=secno>4.12.1 </span>Hyperlink elements</h4>
+
+ <p>The <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, and <code><a href=#the-link-element>link</a></code>
+ elements can, in certain situations described in the definitions of
+ those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
+
+ <p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
+ attribute on a hyperlink element must have a value that is a
+ <a href=#valid-url>valid URL</a>. This URL is the <em>destination
+ resource</em> of the hyperlink.</p>
+
+ <div class=note>
+
+ <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
+ <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
+ those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
+ represent hyperlinks.</p>
+
+ <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
+ <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
+ <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
+ the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
+ of that element.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
+ attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
+ or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
+ context</a> that will be used. <span class=impl>User agents use
+ this name when <a href=#following-hyperlinks>following hyperlinks</a>.</span></p>
+
+ <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
+ present, gives the URLs of the resources that are interested in
+ being notified if the user follows the hyperlink. The value must be
+ a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
+ <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
+ value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
+ auditing</a>.</span></p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>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=attr-hyperlink-rel title=attr-hyperlink-rel><code>rel</code></dfn> attribute, which
+ must be a <a href=#set-of-space-separated-tokens>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=#attr-hyperlink-rel>rel</a></code> attribute has
+ no default value. If the attribute is omitted or if none of the
+ values in the attribute are recognized by the user agent, then the
+ document has no particular relationship with the destination
+ resource other than there being a hyperlink between the two.</p>
+
+ <p>The <dfn id=attr-hyperlink-media 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 <a href=#valid-media-query>valid
+ media query</a>. The default, if the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code> attribute is omitted, is
+ "<code title="">all</code>".</p>
+
+ <p>The <dfn id=attr-hyperlink-hreflang 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 BCP 47 language code. <a href=#refsBCP47>[BCP47]</a>
+ <span class=impl>User agents must not consider this attribute
+ authoritative — upon fetching the resource, user agents must
+ use only language information associated with the resource to
+ determine its language, not metadata included in the link to the
+ resource.</span></p>
+
+ <p>The <dfn id=attr-hyperlink-type title=attr-hyperlink-type><code>type</code></dfn>
+ attribute, if present, gives the <a href=#mime-type>MIME type</a> of the
+ linked resource. It is purely advisory. The value must be a
+ <a href=#valid-mime-type>valid MIME type</a>. <span class=impl>User agents must
+ not consider the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>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.</span></p>
+
+
+ <div class=impl>
+
+ <h4 id=following-hyperlinks><span class=secno>4.12.2 </span><dfn>Following hyperlinks</dfn></h4>
+
+ <p>When a user <em>follows a hyperlink</em>, the user agent must
+ <a href=#resolve-a-url title="resolve a url">resolve</a> the <a href=#url>URL</a>
+ given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute
+ of that hyperlink, relative to the hyperlink element, and if that is
+ successful, must <a href=#navigate>navigate</a> a <a href=#browsing-context>browsing
+ context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
+ case of server-side image maps, the URL of the hyperlink must
+ further have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it.</p>
+
+ <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ <a href=#url>URL</a> fails, the user agent may report the error to the
+ user in a user-agent-specific manner, may navigate to an error page
+ to report the error, or may ignore the error and do nothing.</p>
+
+ <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
+ 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 <a href=#browsing-context>browsing context</a> that is
+ navigated.</p>
+
+ <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has a <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, then the
+ <a href=#browsing-context>browsing context</a> that is navigated must be chosen by
+ applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
+ browsing context name</a>, using the value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute as the
+ browsing context name. If these rules result in the creation of a
+ new <a href=#browsing-context>browsing context</a>, it must be navigated with
+ <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+ <p>Otherwise, if the hyperlink element is a <a href=#rel-sidebar-hyperlink 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>
+
+ <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but one of
+ the child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
+ <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the browsing
+ context that is navigated must be chosen by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
+ for choosing a browsing context given a browsing context name</a>,
+ using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code>
+ attribute of the first such <code><a href=#the-base-element>base</a></code> element as the
+ browsing context name. If these rules result in the creation of a
+ new <a href=#browsing-context>browsing context</a>, it must be navigated with
+ <a href=#replacement-enabled>replacement enabled</a>.</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>
+
+ <p>The navigation must be done with the <a href=#browsing-context>browsing
+ context</a> that contains the <code>Document</code> object with
+ which the hyperlink's element in question is associated as the
+ <a href=#source-browsing-context>source browsing context</a>.</p>
+
+
+ <h5 id=hyperlink-auditing><span class=secno>4.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5>
+
+ <p>If an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>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, and the hyperlink's <a href=#url>URL</a> can
+ be <a href=#resolve-a-url title="resolve a url">resolved</a>, relative to the
+ hyperlink element, without failure, then the user agent must take
+ the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute's value,
+ <a href=#split-a-string-on-spaces title="split a string on spaces">split that string on
+ spaces</a>, <a href=#resolve-a-url title="resolve a url">resolve</a> each
+ resulting token relative to the hyperlink element, and then should
+ send a request (as described below) to each of the resulting <a href=#absolute-url title="absolute URL">absolute URLs</a>. (Tokens that fail to
+ resolve are ignored.) 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 behavior, for
+ example in conjunction with a setting that disables the sending of
+ HTTP <code title=http-referer>Referer</code> (sic) headers. Based
+ on the user's preferences, UAs may either <a href=#ignore>ignore</a> the
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute altogether,
+ or selectively ignore URLs in the list (e.g. ignoring any
+ third-party URLs).</p>
+
+ <p>For URLs that are HTTP URLs, the requests must be performed by
+ <a href=#fetch title=fetch>fetching</a> the specified URLs using the
+ POST method, with an entity body with the <a href=#mime-type>MIME type</a>
+ <code><a href=#text/ping>text/ping</a></code> consisting of the four-character string
+ "<code title="">PING</code>", from the <a href=#origin>origin</a> of the
+ <code>Document</code> containing the <a href=#hyperlink>hyperlink</a>. <!--
+ not http-origin privacy sensitive --> All relevant cookie and HTTP
+ authentication headers must be included in the request. Which other
+ headers are required depends on the URLs involved.</p>
+
+ <dl class=switch><dt>If both the <a href="#the-document's-address" title="the document's address">address</a>
+ of the <code>Document</code> object containing the hyperlink being
+ audited and the ping URL have the <a href=#same-origin>same origin</a></dt>
+
+ <dd>The request must include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with, as its
+ value, the <a href="#the-document's-address" title="the document's address">address</a> of
+ the document containing the hyperlink, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the <a href=#absolute-url>absolute URL</a> of the target of the
+ hyperlink. The request must not include a <code title=http-referer>Referer</code> (sic) HTTP header. <!-- because
+ otherwise it would look like a trustable same-origin POST --></dd>
+
+ <dt>Otherwise, if the origins are different, but the document
+ containing the hyperlink being audited was not retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-referer>Referer</code> (sic) HTTP header [sic] with,
+ as its value, the <a href="#the-document's-current-address" title="the document's current
+ address">current address</a> of the document containing the
+ hyperlink, a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP
+ header with the same value, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the target of the hyperlink.</dd>
+
+ <dt>Otherwise, the origins are different and the document
+ containing the hyperlink being audited was retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the target of the hyperlink. The request must
+ neither include a <code title=http-referer>Referer</code> (sic)
+ HTTP header nor include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header.</dd>
+
+ </dl><p class=note>To save bandwidth, implementors might also wish to
+ consider omitting optional headers such as <code>Accept</code> from
+ these requests.</p>
+
+ <p>User agents must, unless otherwise specified by the user, honor
+ the HTTP headers (including, in particular, redirects and HTTP
+ cookie headers), but must ignore any entity bodies returned in the
+ responses. User agents may close the connection prematurely once
+ they start receiving an entity body. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>For URLs that are not HTTP URLs, the requests must be performed
+ by <a href=#fetch title=fetch>fetching</a> the specified URL normally,
+ and discarding the results.</p>
+
+ <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
+ URLs.</p>
+
+ <p class=example>For example, a visual user agent could include
+ the hostnames of the target ping URLs along with the hyperlink's
+ actual URL in a status bar or tooltip.</p>
+
+ </div>
+
+ <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 URL
+ unobscured.</li>
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.</li>
+
+ <li>It allows the user to disable the notifications without losing
+ the underlying link functionality.</li>
+
+ <li>It allows the UA to optimize 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><a href=#ping>ping</a></code> attribute so that the user
+ agent can make the user experience more transparent.</p>
+
+ </div>
+
+ <!-- resolving ping urls happens at audit time, so base URL changes
+ affect the values of ping attributes -->
+
+
+
+ <h4 id=linkTypes><span class=secno>4.12.3 </span>Link types</h4>
+
+ <p>The following table summarizes 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 <i>referenced document</i> refers to
+ the resource identified by the element representing the link, and
+ the term <i>current document</i> refers to the resource within
+ which the element representing the link finds itself.</p>
+
+ <div class=impl>
+
+ <p>To determine which link types apply to a <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code> element, the element's <code title="">rel</code> attribute must be <a href=#split-a-string-on-spaces title="split a string on
+ spaces">split on spaces</a>. The resulting tokens are the link
+ types that apply to that element.</p>
+
+ </div>
+
+ <p>Except where otherwise specified, a keyword must not be specified
+ more than once per <code title=attr-rel-hyperlink>rel</code>
+ attribute.</p>
+
+ <p>The link types that contain no U+003A COLON characters (:),
+ including all those defined in this specification, are <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> values<span class=impl>, and must be
+ compared as such</span>.</p>
+
+ <p class=example>Thus, <code title="">rel="next"</code> is the
+ same as <code title="">rel="NEXT"</code>.</p>
+
+ <table><thead><tr><th rowspan=2>Link type</th>
+ <th colspan=2>Effect on...</th>
+ <th rowspan=2>Brief description</th>
+ <tr><th><code><a href=#the-link-element>link</a></code></th>
+ <th><code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></th>
+ <tbody><tr><td><code title=rel-alternate><a href=#link-type-alternate>alternate</a></code></td> <!-- second most used <link rel> value -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives alternate representations of the current document.</td>
+ <tr><td><code title=rel-archives><a href=#link-type-archives>archives</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
+ <tr><td><code title=rel-author><a href=#link-type-author>author</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to the current document's author.</td>
+ <tr><td><code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code></td> <!-- fourth most used <a rel> value -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives the permalink for the nearest ancestor section.</td>
+ </tr><!-- (commented out on the assumption that rel=contact is really XFN)
+ <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><a href=#link-type-external>external</a></code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the referenced document is not part of the same site as the current document.</td>
+ <tr><td><code title=rel-first><a href=#link-type-first>first</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-help><a href=#link-type-help>help</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to context-sensitive help.</td>
+ <tr><td><code title=rel-icon><a href=#rel-icon>icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports an icon to represent the current document.</td>
+ <tr><td><code title=rel-index><a href=#link-type-index>index</a></code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
+ <tr><td><code title=rel-last><a href=#link-type-last>last</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-license><a href=#link-type-license>license</a></code></td> <!-- seventh most used <a rel> value -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
+ <tr><td><code title=rel-next><a href=#link-type-next>next</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
+ <tr><td><code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code></td>
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Requires that the user agent not send an HTTP <code title=http-referer>Referer</code> (sic) header if the user follows the hyperlink.</td>
+ <tr><td><code title=rel-pingback><a href=#link-type-pingback>pingback</a></code></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
+ <tr><td><code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Specifies that the target resource should be preemptively cached.</td>
+ <tr><td><code title=rel-prev><a href=#link-type-prev>prev</a></code></td> <!-- prev is used more than previous -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-search><a href=#link-type-search>search</a></code></td> <!-- used quite a bit -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
+ <tr><td><code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports a stylesheet.</td>
+ <tr><td><code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code></td> <!-- used quite a bit -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-tag><a href=#link-type-tag>tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a tag (identified by the given address) that applies to the current document.</td>
+ <tr><td><code title=rel-up><a href=#link-type-up>up</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to a document giving the context for the current document.</td>
+ </table><div class=impl>
+
+ <p>Some of the types described below list synonyms for these
+ values. These <!--<span class="impl">-->are to be handled as
+ specified by user agents, but<!--</span>--> must not be used in
+ documents.</p>
+
+ </div>
+
+ <!-- v2 ideas:
+ * rel="script"
+ * rel="related" // see also
+ * http://microformats.org/wiki/rel-enclosure
+ -->
+
+
+ <h5 id=link-type-alternate><span class=secno>4.12.3.1 </span>Link type "<dfn title=rel-alternate><code>alternate</code></dfn>"</h5>
+
+ <p>The <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, if the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute does not also contain the
+ keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, it creates a
+ <a href=#hyperlink-link title="hyperlink link">hyperlink</a>; but if it
+ <em>does</em> also contain the keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword instead modifies the
+ meaning of the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></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><a href=#link-type-alternate>alternate</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes.</p>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>
+ attribute, it indicates that the referenced document is intended for
+ use with the media specified.</p>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>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>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes can be combined
+ when specified with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></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>
+
+ <div class=impl>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
+ attribute set to the value <code title="">application/rss+xml</code>
+ or the value <code title="">application/atom+xml</code>, then it
+ indicates that the referenced document is a syndication feed (though
+ not necessarily syndicating exactly the same content as the current
+ page).</p>
+
+ <div class=impl>
+
+ <p>The first <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code>
+ element in the document (in tree order) with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attribute set to the value
+ <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
+ syndication feed for the purposes of feed autodiscovery.</p>
+
+ <div class=example>
+ <p>The following <code><a href=#the-link-element>link</a></code> element gives the syndication
+ feed for the current page:</p>
+ <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
+ <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
+ <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
+</ul></pre>
+ </div>
+
+ </div>
+
+
+
+
+ </div>
+
+ <p>The <code title=rel-alternate><a href=#link-type-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=#link-type-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.</p>
+
+
+ <h5 id=link-type-archives><span class=secno>4.12.3.2 </span>Link type "<dfn title=rel-archives><code>archives</code></dfn>"</h5>
+
+ <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></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>
+
+ <div class=impl>
+
+ <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=#link-type-archives>archives</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=link-type-author><span class=secno>4.12.3.3 </span>Link type "<dfn title=rel-author><code>author</code></dfn>"</h5>
+
+ <p>The <code title=rel-author><a href=#link-type-author>author</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
+ referenced document provides further information about the author of
+ the nearest <code><a href=#the-article-element>article</a></code> element ancestor of the element
+ defining the hyperlink, if there is one, or of the page as a whole,
+ otherwise.</p>
+
+ <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></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> URL giving the e-mail address of the
+ author. <a href=#refsMAILTO>[MAILTO]</a></p>
+
+ <div class=impl>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and
+ <code><a href=#the-area-element>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=#link-type-author>author</a></code> keyword specified as a link
+ relationship.</p>
+
+ </div>
+
+
+ <h5 id=link-type-bookmark><span class=secno>4.12.3.4 </span>Link type "<dfn title=rel-bookmark><code>bookmark</code></dfn>"</h5>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword gives a
+ permalink for the nearest ancestor <code><a href=#the-article-element>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=#the-article-element>article</a></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>
+
+<!-- (commented out on the assumption that rel=contact is really XFN)
+ <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
+ author of the nearest <code>article</code> element ancestor of the
+ element defining the hyperlink, if there is one, or of the page as a
+ whole, otherwise.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+ <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 id=link-type-external><span class=secno>4.12.3.5 </span>Link type "<dfn title=rel-external><code>external</code></dfn>"</h5>
+
+ <p>The <code title=rel-external><a href=#link-type-external>external</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-external><a href=#link-type-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.</p>
+
+
+ <h5 id=link-type-help><span class=secno>4.12.3.6 </span>Link type "<dfn title=rel-help><code>help</code></dfn>"</h5>
+
+ <p>The <code title=rel-help><a href=#link-type-help>help</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-help><a href=#link-type-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.</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><a href=#the-link-element>link</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
+ document provides help for the page as a whole.</p>
+
+
+ <h5 id=rel-icon><span class=secno>4.12.3.7 </span>Link type "<dfn title=rel-icon><code>icon</code></dfn>"</h5>
+
+ <p>The <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <div class=impl>
+
+ <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>
+
+ </div>
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of
+ icons. <span class=impl>If multiple icons are provided, the user
+ agent must select the most appropriate icon according to the <code title=attr-link-type><a href=#attr-link-type>type</a></code>, <code title=attr-link-media><a href=#attr-link-media>media</a></code>, and <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attributes. If there are
+ multiple equally appropriate icons, user agents must use the last
+ one declared in <a href=#tree-order>tree order</a>. If the user agent tries to
+ use an icon but that icon is determined, upon closer examination, to
+ in fact be inappropriate (e.g. because it uses an unsupported
+ format), then the user agent must try the next-most-appropriate icon
+ as determined by the attributes.</span></p>
+
+ <div class=impl>
+
+ <p>There is no default type for resources given by the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword. However, for the purposes of
+ <a href=#concept-link-type-sniffing>determining the type of the
+ resource</a>, user agents must expect the resource to be an image.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes title=attr-link-sizes><code>sizes</code></dfn>
+ attribute gives the sizes of icons for visual media.</p>
+
+ <p>If specified, the attribute must have a value that is an
+ <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a>. The
+ values must all be either <code title=attr-link-sizes-any><a href=#attr-link-sizes-any>any</a></code> or a value that consists of
+ two <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
+ integers</a> that do not have a leading U+0030 DIGIT ZERO (0)
+ character and that are separated by a single U+0078 LATIN SMALL
+ LETTER X character (x).</p>
+
+ <p>The keywords represent icon sizes.</p>
+
+ <div class=impl>
+
+ <p>To parse and process the attribute's value, the user agent must
+ first <a href=#split-a-string-on-spaces title="split a string on spaces">split the attribute's
+ value on spaces</a>, and must then parse each resulting keyword
+ to determine what it represents.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes-any title=attr-link-sizes-any><code>any</code></dfn> keyword
+ represents that the resource contains a scalable icon, e.g. as
+ provided by an SVG image.</p>
+
+ <div class=impl>
+
+ <p>Other keywords must be further parsed as follows to determine
+ what they represent:</p>
+
+ <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
+ SMALL LETTER X character (x), then this keyword doesn't represent
+ anything. Abort these steps for that keyword.</li>
+
+ <li><p>Let <var title="">width string</var> be the string before
+ the "<code title="">x</code>".</li>
+
+ <li><p>Let <var title="">height string</var> be the string after the
+ "<code title="">x</code>".</li>
+
+ <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
+ character or contain any characters other than characters in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+ keyword doesn't represent anything. Abort these steps for that
+ keyword.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</li>
+
+ <li><p>The keyword represents that the resource contains a bitmap
+ icon with a width of <var title="">width</var> device pixels and a
+ height of <var title="">height</var> device pixels.</li>
+
+ </ul></div>
+
+ <p>The keywords specified on the <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute must not represent
+ icon sizes that are not actually available in the linked
+ resource.</p>
+
+ <div class=impl>
+
+ <p>If the attribute is not specified, then the user agent must
+ assume that the given icon is appropriate, but less appropriate than
+ an icon of a known and appropriate size.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following snippet shows the top part of an application with
+ several icons.</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>lsForums — Inbox</title>
+ <link rel=icon href=favicon.png sizes="16x16" type="image/png">
+ <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
+ <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
+ <link rel=icon href=iphone.png sizes="59x60" type="image/png">
+ <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
+ <link rel=stylesheet href=lsforums.css>
+ <script src=lsforums.js></script>
+ <meta name=application-name content="lsForums">
+ </head>
+ <body>
+ ...</pre>
+
+ </div>
+
+
+ <h5 id=link-type-license><span class=secno>4.12.3.8 </span>Link type "<dfn title=rel-license><code>license</code></dfn>"</h5>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword indicates
+ that the referenced document provides the copyright license terms
+ under which the main content of the current document is
+ provided.</p>
+
+ <p>This specification does not specify how to distinguish between
+ the main content of a document and content that is not deemed to be
+ part of that main content. The distinction should be made clear to
+ the user.</p>
+
+ <div class=example>
+
+ <p>Consider a photo sharing site. A page on that site might
+ describe and show a photograph, and the page might be marked up as
+ follows:</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Exampl Pictures: Kissat</title>
+ <link rel="stylesheet" href="/style/default">
+ </head>
+ <body>
+ <h1>Kissat</h1>
+ <nav>
+ <a href="../">Return to photo index</a>
+ </nav>
+ <figure>
+ <img src="/pix/39627052_fd8dcd98b5.jpg">
+ <figcaption>Kissat</figcaption>
+ </figure>
+ <p>One of them has six toes!</p>
+ <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
+ <footer>
+ <a href="/">Home</a> | <a href="../">Photo index</a>
+ <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
+ </footer>
+ </body>
+</html></pre>
+
+ <p>In this case the <code title=rel-license><a href=#link-type-license>license</a></code>
+ applies to just the photo (the main content of the document), not
+ the whole document. In particular not the design of the page
+ itself, which is covered by the copyright given at the bottom of
+ the document. This could be made clearer in the styling
+ (e.g. making the license link prominently positioned near the
+ photograph, while having the page copyright in light small text at
+ the foot of the page.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <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=#link-type-license>license</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=link-type-nofollow><span class=secno>4.12.3.9 </span>Link type "<dfn title=rel-nofollow><code>nofollow</code></dfn>"</h5>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword indicates
+ that the link is not endorsed by the original author or publisher of
+ the page, or that the link to the referenced document was included
+ primarily because of a commercial relationship between people
+ affiliated with the two pages.</p>
+
+
+ <h5 id=link-type-noreferrer><span class=secno>4.12.3.10 </span>Link type "<dfn title=rel-noreferrer><code>noreferrer</code></dfn>"</h5>
+
+ <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>It indicates that no referrer information is to be leaked when
+ following the link.</p>
+
+ <div class=impl>
+
+ <p>If a user agent follows a link defined by an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword, the user agent
+ must not include a <code title=http-referer>Referer</code> (sic)
+ HTTP header (<a href=#concept-http-equivalent-headers title=concept-http-equivalent-headers>or
+ equivalent</a> for other protocols) in the request.</p>
+
+ <p>This keyword also <a href=#noopener>causes the <code title=dom-opener>opener</code> attribute to remain null</a> if the
+ hyperlink creates a new <a href=#browsing-context>browsing context</a>.</p>
+
+ </div>
+
+ <!-- v2: Would be nice to apply this to other elements too,
+ e.g. letting <img> or CSS or <video> hide the referrer -->
+
+
+ <h5 id=link-type-pingback><span class=secno>4.12.3.11 </span>Link type "<dfn title=rel-pingback><code>pingback</code></dfn>"</h5>
+
+ <p>The <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <p>For the semantics of the <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword, see the Pingback 1.0
+ specification. <a href=#refsPINGBACK>[PINGBACK]</a></p>
+
+
+ <h5 id=link-type-prefetch><span class=secno>4.12.3.12 </span>Link type "<dfn title=rel-prefetch><code>prefetch</code></dfn>"</h5>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-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.</p>
+
+ <p>There is no default type for resources given by the <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword.</p>
+
+
+ <h5 id=link-type-search><span class=secno>4.12.3.13 </span>Link type "<dfn title=rel-search><code>search</code></dfn>"</h5>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></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><a href=#the-link-element>link</a></code> elements and the <code title=rel-search><a href=#link-type-search>search</a></code> link type to enable user agents to
+ autodiscover search interfaces. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
+
+
+ <h5 id=link-type-stylesheet><span class=secno>4.12.3.14 </span>Link type "<dfn title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
+
+ <p>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a> that
+ contributes to the <a href=#styling>styling processing model</a>.</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><a href=#link-type-alternate>alternate</a></code> keyword is
+ also specified on the <code><a href=#the-link-element>link</a></code> element, then <dfn id=the-link-is-an-alternative-stylesheet>the link
+ is an alternative stylesheet</dfn>; in this case, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute must be specified on the
+ <code><a href=#the-link-element>link</a></code> element, with a non-empty value.</p>
+
+ <p>The default type for resources given by the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
+
+ <div class=impl>
+
+ <p><strong>Quirk</strong>: If the document has been set to
+ <a href=#quirks-mode>quirks mode</a> and the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the external
+ resource is not a supported style sheet type, the user agent must
+ instead assume it to be <code title="">text/css</code>.</p>
+
+ </div>
+
+
+ <h5 id=link-type-sidebar><span class=secno>4.12.3.15 </span>Link type "<dfn title=rel-sidebar><code>sidebar</code></dfn>"</h5>
+
+ <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword indicates
+ that the referenced document, if retrieved, is intended to be shown
+ in a <a href=#secondary-browsing-context>secondary browsing context</a> (if possible), instead
+ of in the current <a href=#browsing-context>browsing context</a>.</p>
+
+ <p>A <a href=#hyperlink title=hyperlink>hyperlink element</a> with the <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword specified is a <dfn id=rel-sidebar-hyperlink title=rel-sidebar-hyperlink>sidebar hyperlink</dfn>.</p>
+
+
+ <h5 id=link-type-tag><span class=secno>4.12.3.16 </span>Link type "<dfn title=rel-tag><code>tag</code></dfn>"</h5>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword indicates that the
+ <em>tag</em> that the referenced document represents applies to the
+ current document.</p>
+
+ <p class=note>Since it indicates that the tag <em>applies to the
+ current document</em>, it would be inappropriate to use this keyword
+ in the markup of a <a href=#tag-cloud>tag cloud</a>, which lists
+ the popular tag across a set of pages.</p>
+
+
+ <h5 id=hierarchical-link-types><span class=secno>4.12.3.17 </span>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. The document of which a document is a
+ subdocument is said to be the document's <em>parent</em>. A document
+ with no parent forms the top of the hierarchy.</p>
+
+ <p>A document may be part of multiple hierarchies.</p>
+
+
+ <h6 id=link-type-index><span class=secno>4.12.3.17.1 </span>Link type "<dfn title=rel-index><code>index</code></dfn>"</h6>
+
+ <p>The <code title=rel-index><a href=#link-type-index>index</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-index><a href=#link-type-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. It
+ conveys more information when used with the <code title=rel-up><a href=#link-type-up>up</a></code> keyword (q.v.).</p>
+
+ <div class=impl>
+
+ <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=#link-type-index>index</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-up><span class=secno>4.12.3.17.2 </span>Link type "<dfn title=rel-up><code>up</code></dfn>"</h6>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword indicates that the
+ document is part of a hierarchical structure, and that the link is
+ leading to a document that is an ancestor of the current
+ document.</p>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be repeated within
+ a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute to indicate
+ the hierarchical distance from the current document to the
+ referenced document. If it occurs only once, then the link is
+ leading to the current document's parent; each additional occurrence
+ of the keyword represents one further level. If the <code title=rel-index><a href=#link-type-index>index</a></code> keyword is also present, then the
+ number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords is the depth of
+ the current page relative to the top of the hierarchy. Only one link
+ is created for the set of one or more <code title=rel-up><a href=#link-type-up>up</a></code>
+ keywords and, if present, the <code title=rel-index><a href=#link-type-index>index</a></code>
+ keyword.</p>
+
+ <p>If the page is part of multiple hierarchies, then they should be
+ described in different <a href=#paragraph title=paragraph>paragraphs</a>. <span class=impl>User agents
+ must scope any interpretation of the <code title=rel-up><a href=#link-type-up>up</a></code>
+ and <code title=rel-index><a href=#link-type-index>index</a></code> keywords together
+ indicating the depth of the hierarchy to the <a href=#paragraph>paragraph</a>
+ in which the link finds itself, if any, or to the document
+ otherwise.</span></p>
+
+ <div class=impl>
+
+ <p>When two links have both the <code title=rel-up><a href=#link-type-up>up</a></code> and
+ <code title=rel-index><a href=#link-type-index>index</a></code> keywords specified together in
+ the same scope and contradict each other by having a different
+ number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords, the link with the
+ greater number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords must be
+ taken as giving the depth of the document.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This can be used to mark up a navigation style sometimes known
+ as bread crumbs. In the following example, the current page can be
+ reached via two paths.</p>
+
+ <pre><nav>
+ <p>
+ <a href="/" rel="index up up up">Main</a> >
+ <a href="/products/" rel="up up">Products</a> >
+ <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
+ <a>Second hand</a>
+ </p>
+ <p>
+ <a href="/" rel="index up up">Main</a> >
+ <a href="/second-hand/" rel="up">Second hand</a> >
+ <a>Dishwashers</a>
+ </p>
+</nav></pre>
+
+ </div>
+
+ <p class=note>The <code title=dom-a-relList><a href=#dom-a-rellist>relList</a></code> IDL
+ attribute (e.g. on the <code><a href=#the-a-element>a</a></code> element) does not currently
+ represent multiple <code title=rel-up><a href=#link-type-up>up</a></code> keywords (the
+ interface hides duplicates).</p>
+
+
+ <h5 id=sequential-link-types><span class=secno>4.12.3.18 </span>Sequential link types</h5>
+
+ <p>Some documents form part of a sequence of documents.</p>
+
+ <p>A sequence of documents is one where each document can have a
+ <em>previous sibling</em> and a <em>next sibling</em>. A document
+ with no previous sibling is the start of its sequence, a document
+ with no next sibling is the end of its sequence.</p>
+
+ <p>A document may be part of multiple sequences.</p>
+
+
+ <h6 id=link-type-first><span class=secno>4.12.3.18.1 </span>Link type "<dfn title=rel-first><code>first</code></dfn>"</h6>
+
+ <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword indicates that
+ the document is part of a sequence, and that the link is leading to
+ the document that is the first logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-first>first</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-last><span class=secno>4.12.3.18.2 </span>Link type "<dfn title=rel-last><code>last</code></dfn>"</h6>
+
+ <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the last logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-last>last</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-next><span class=secno>4.12.3.18.3 </span>Link type "<dfn title=rel-next><code>next</code></dfn>"</h6>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the next logical document in the sequence.</p>
+
+
+ <h6 id=link-type-prev><span class=secno>4.12.3.18.4 </span>Link type "<dfn title=rel-prev><code>prev</code></dfn>"</h6>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the previous logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-prev>prev</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=other-link-types><span class=secno>4.12.3.19 </span>Other link types</h5>
+
+ <p><dfn id=concept-rel-extensions title=concept-rel-extensions>Extensions to the predefined
+ set of link types</dfn> may be registered in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
+ RelExtensions page</a>. <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>
+
+ <p>If the value contains a U+003A COLON character (:), it must
+ also be an <a href=#absolute-url>absolute URL</a>.</p>
+
+ </dd>
+
+
+ <dt>Effect on... <code><a href=#the-link-element>link</a></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 href=#the-link-element>link</a></code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink
+ link</a>.</dd>
+
+ <dt>External Resource</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates a <a href=#external-resource-link title="external resource link">external
+ resource link</a>.</dd>
+
+ </dl></dd>
+
+
+ <dt>Effect on... <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></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 href=#the-a-element>a</a></code>
+ and <code><a href=#the-area-element>area</a></code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements.</dd>
+
+ </dl></dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of what the keyword's
+ meaning is.</dd>
+
+
+ <dt>Specification</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.</dd>
+
+
+ <dt>Synonyms</dt>
+
+ <dd><p>A list of other keyword values that have exactly the same
+ processing requirements. Authors should not use the values defined
+ to be synonyms, they are only intended to allow user agents to
+ support legacy content. Anyone may remove synonyms that are not
+ used in practice; only names that need to be processed as synonyms
+ for compatibility with legacy content are to be registered in this
+ way.</dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Proposed</dt>
+
+ <dd>The keyword has not received wide peer review and
+ approval. Someone has proposed it and is, or soon will be, using
+ it.</dd>
+
+ <dt>Ratified</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 it in
+ incorrect ways.</dd>
+
+ <dt>Discontinued</dt>
+
+ <dd>The keyword has received wide peer review and it has been
+ found wanting. Existing pages are using this keyword, but new
+ pages should avoid it. The "brief description" and
+ "specification" entries will give details of what authors should
+ use instead, if anything.</dd>
+
+ </dl><p>If a keyword is found to be redundant with existing values, it
+ should be removed and listed as a synonym for the existing
+ value.</p>
+
+ <p>If a keyword is registered in the "proposed" state for a
+ period of a month or more without being used or specified, then it
+ may be removed from the registry.</p>
+
+ <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
+ changed to "discontinued" status.</p>
+
+ <p>Anyone can change the status at any time, but should only do so
+ in accordance with the definitions above.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki RelExtensions page to establish if a value is allowed or not:
+ values defined in this specification or marked as "proposed" or
+ "ratified" must be accepted when used on the elements for which they
+ apply as described in the "Effect on..." field, whereas values
+ marked as "discontinued" or not listed in either this specification
+ or on the aforementioned page must be rejected as invalid.
+ Conformance checkers may cache this information (e.g. for
+ performance reasons or to avoid the use of unreliable network
+ connectivity).</p>
+
+ <p>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 "proposed" status.</p>
+
+ </div>
+
+ <p>Types defined as extensions in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
+ RelExtensions page</a> with the status "proposed" or "ratified" may
+ be used with the <code title="">rel</code> attribute on
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code> elements in
+ accordance to the "Effect on..." field. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
+
+
+ <h3 id=common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</h3>
+
+ <h4 id=tag-clouds><span class=secno>4.13.1 </span>Tag clouds</h4>
+
<p id=tag-cloud>This specification does not define any markup
specifically for marking up lists of keywords that apply to a group
of pages (also known as <i>tag clouds</i>). In general, authors are
@@ -44509,7 +45842,7 @@
</div>
- <h4 id=conversations><span class=secno>4.12.2 </span>Conversations</h4>
+ <h4 id=conversations><span class=secno>4.13.2 </span>Conversations</h4>
<!-- http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-September/022576.html -->
@@ -44555,7 +45888,7 @@
</div>
- <h4 id=footnotes><span class=secno>4.12.3 </span>Footnotes</h4>
+ <h4 id=footnotes><span class=secno>4.13.3 </span>Footnotes</h4>
<p>HTML does not have a dedicated mechanism for marking up
footnotes. Here are the recommended alternatives.</p>
@@ -44668,9 +46001,9 @@
<div class=impl>
- <h3 id=matching-html-elements-using-selectors><span class=secno>4.13 </span>Matching HTML elements using selectors</h3>
+ <h3 id=matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</h3>
- <h4 id=selectors><span class=secno>4.13.1 </span>Case-sensitivity</h4>
+ <h4 id=selectors><span class=secno>4.14.1 </span>Case-sensitivity</h4>
<p>Attribute and element <em>names</em> of <a href=#html-elements>HTML
elements</a> in <a href=#html-documents>HTML documents</a> must be treated as
@@ -44738,7 +46071,7 @@
treated as <a href=#case-sensitive>case-sensitive</a>.</p>
- <h4 id=pseudo-classes><span class=secno>4.13.2 </span>Pseudo-classes</h4>
+ <h4 id=pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</h4>
<p>There are a number of dynamic selectors that can be used with
HTML. This section defines when these selectors match HTML
@@ -57839,1339 +59172,7 @@
- <h3 id=links><span class=secno>6.12 </span>Links</h3>
-
- <h4 id=hyperlink-elements><span class=secno>6.12.1 </span>Hyperlink elements</h4>
-
- <p>The <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, and <code><a href=#the-link-element>link</a></code>
- elements can, in certain situations described in the definitions of
- those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
-
- <p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a
- <a href=#valid-url>valid URL</a>. This URL is the <em>destination
- resource</em> of the hyperlink.</p>
-
- <div class=note>
-
- <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
- <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
- those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
- represent hyperlinks.</p>
-
- <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
- <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
- <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
- the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
- of that element.</p>
-
- </div>
-
- <p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
- attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
- or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
- context</a> that will be used. <span class=impl>User agents use
- this name when <a href=#following-hyperlinks>following hyperlinks</a>.</span></p>
-
- <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
- present, gives the URLs of the resources that are interested in
- being notified if the user follows the hyperlink. The value must be
- a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
- <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
- value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
- auditing</a>.</span></p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>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=attr-hyperlink-rel title=attr-hyperlink-rel><code>rel</code></dfn> attribute, which
- must be a <a href=#set-of-space-separated-tokens>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=#attr-hyperlink-rel>rel</a></code> attribute has
- no default value. If the attribute is omitted or if none of the
- values in the attribute are recognized by the user agent, then the
- document has no particular relationship with the destination
- resource other than there being a hyperlink between the two.</p>
-
- <p>The <dfn id=attr-hyperlink-media 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 <a href=#valid-media-query>valid
- media query</a>. The default, if the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code> attribute is omitted, is
- "<code title="">all</code>".</p>
-
- <p>The <dfn id=attr-hyperlink-hreflang 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 BCP 47 language code. <a href=#refsBCP47>[BCP47]</a>
- <span class=impl>User agents must not consider this attribute
- authoritative — upon fetching the resource, user agents must
- use only language information associated with the resource to
- determine its language, not metadata included in the link to the
- resource.</span></p>
-
- <p>The <dfn id=attr-hyperlink-type title=attr-hyperlink-type><code>type</code></dfn>
- attribute, if present, gives the <a href=#mime-type>MIME type</a> of the
- linked resource. It is purely advisory. The value must be a
- <a href=#valid-mime-type>valid MIME type</a>. <span class=impl>User agents must
- not consider the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>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.</span></p>
-
-
- <div class=impl>
-
- <h4 id=following-hyperlinks><span class=secno>6.12.2 </span><dfn>Following hyperlinks</dfn></h4>
-
- <p>When a user <em>follows a hyperlink</em>, the user agent must
- <a href=#resolve-a-url title="resolve a url">resolve</a> the <a href=#url>URL</a>
- given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute
- of that hyperlink, relative to the hyperlink element, and if that is
- successful, must <a href=#navigate>navigate</a> a <a href=#browsing-context>browsing
- context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
- case of server-side image maps, the URL of the hyperlink must
- further have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it.</p>
-
- <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
- <a href=#url>URL</a> fails, the user agent may report the error to the
- user in a user-agent-specific manner, may navigate to an error page
- to report the error, or may ignore the error and do nothing.</p>
-
- <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
- 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 <a href=#browsing-context>browsing context</a> that is
- navigated.</p>
-
- <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element that has a <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, then the
- <a href=#browsing-context>browsing context</a> that is navigated must be chosen by
- applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
- browsing context name</a>, using the value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute as the
- browsing context name. If these rules result in the creation of a
- new <a href=#browsing-context>browsing context</a>, it must be navigated with
- <a href=#replacement-enabled>replacement enabled</a>.</p>
-
- <p>Otherwise, if the hyperlink element is a <a href=#rel-sidebar-hyperlink 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>
-
- <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but one of
- the child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
- <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the browsing
- context that is navigated must be chosen by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
- for choosing a browsing context given a browsing context name</a>,
- using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code>
- attribute of the first such <code><a href=#the-base-element>base</a></code> element as the
- browsing context name. If these rules result in the creation of a
- new <a href=#browsing-context>browsing context</a>, it must be navigated with
- <a href=#replacement-enabled>replacement enabled</a>.</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>
-
- <p>The navigation must be done with the <a href=#browsing-context>browsing
- context</a> that contains the <code>Document</code> object with
- which the hyperlink's element in question is associated as the
- <a href=#source-browsing-context>source browsing context</a>.</p>
-
-
- <h5 id=hyperlink-auditing><span class=secno>6.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5>
-
- <p>If an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>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, and the hyperlink's <a href=#url>URL</a> can
- be <a href=#resolve-a-url title="resolve a url">resolved</a>, relative to the
- hyperlink element, without failure, then the user agent must take
- the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute's value,
- <a href=#split-a-string-on-spaces title="split a string on spaces">split that string on
- spaces</a>, <a href=#resolve-a-url title="resolve a url">resolve</a> each
- resulting token relative to the hyperlink element, and then should
- send a request (as described below) to each of the resulting <a href=#absolute-url title="absolute URL">absolute URLs</a>. (Tokens that fail to
- resolve are ignored.) 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 behavior, for
- example in conjunction with a setting that disables the sending of
- HTTP <code title=http-referer>Referer</code> (sic) headers. Based
- on the user's preferences, UAs may either <a href=#ignore>ignore</a> the
- <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute altogether,
- or selectively ignore URLs in the list (e.g. ignoring any
- third-party URLs).</p>
-
- <p>For URLs that are HTTP URLs, the requests must be performed by
- <a href=#fetch title=fetch>fetching</a> the specified URLs using the
- POST method, with an entity body with the <a href=#mime-type>MIME type</a>
- <code><a href=#text/ping>text/ping</a></code> consisting of the four-character string
- "<code title="">PING</code>", from the <a href=#origin>origin</a> of the
- <code>Document</code> containing the <a href=#hyperlink>hyperlink</a>. <!--
- not http-origin privacy sensitive --> All relevant cookie and HTTP
- authentication headers must be included in the request. Which other
- headers are required depends on the URLs involved.</p>
-
- <dl class=switch><dt>If both the <a href="#the-document's-address" title="the document's address">address</a>
- of the <code>Document</code> object containing the hyperlink being
- audited and the ping URL have the <a href=#same-origin>same origin</a></dt>
-
- <dd>The request must include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with, as its
- value, the <a href="#the-document's-address" title="the document's address">address</a> of
- the document containing the hyperlink, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the <a href=#absolute-url>absolute URL</a> of the target of the
- hyperlink. The request must not include a <code title=http-referer>Referer</code> (sic) HTTP header. <!-- because
- otherwise it would look like a trustable same-origin POST --></dd>
-
- <dt>Otherwise, if the origins are different, but the document
- containing the hyperlink being audited was not retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code title=http-referer>Referer</code> (sic) HTTP header [sic] with,
- as its value, the <a href="#the-document's-current-address" title="the document's current
- address">current address</a> of the document containing the
- hyperlink, a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP
- header with the same value, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the target of the hyperlink.</dd>
-
- <dt>Otherwise, the origins are different and the document
- containing the hyperlink being audited was retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the target of the hyperlink. The request must
- neither include a <code title=http-referer>Referer</code> (sic)
- HTTP header nor include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header.</dd>
-
- </dl><p class=note>To save bandwidth, implementors might also wish to
- consider omitting optional headers such as <code>Accept</code> from
- these requests.</p>
-
- <p>User agents must, unless otherwise specified by the user, honor
- the HTTP headers (including, in particular, redirects and HTTP
- cookie headers), but must ignore any entity bodies returned in the
- responses. User agents may close the connection prematurely once
- they start receiving an entity body. <a href=#refsCOOKIES>[COOKIES]</a></p>
-
- <p>For URLs that are not HTTP URLs, the requests must be performed
- by <a href=#fetch title=fetch>fetching</a> the specified URL normally,
- and discarding the results.</p>
-
- <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
- URLs.</p>
-
- <p class=example>For example, a visual user agent could include
- the hostnames of the target ping URLs along with the hyperlink's
- actual URL in a status bar or tooltip.</p>
-
- </div>
-
- <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 URL
- unobscured.</li>
-
- <li>It allows the UA to inform the user about the out-of-band
- notifications.</li>
-
- <li>It allows the user to disable the notifications without losing
- the underlying link functionality.</li>
-
- <li>It allows the UA to optimize 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><a href=#ping>ping</a></code> attribute so that the user
- agent can make the user experience more transparent.</p>
-
- </div>
-
- <!-- resolving ping urls happens at audit time, so base URL changes
- affect the values of ping attributes -->
-
-
-
- <h4 id=linkTypes><span class=secno>6.12.3 </span>Link types</h4>
-
- <p>The following table summarizes 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 <i>referenced document</i> refers to
- the resource identified by the element representing the link, and
- the term <i>current document</i> refers to the resource within
- which the element representing the link finds itself.</p>
-
- <div class=impl>
-
- <p>To determine which link types apply to a <code><a href=#the-link-element>link</a></code>,
- <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code> element, the element's <code title="">rel</code> attribute must be <a href=#split-a-string-on-spaces title="split a string on
- spaces">split on spaces</a>. The resulting tokens are the link
- types that apply to that element.</p>
-
- </div>
-
- <p>Except where otherwise specified, a keyword must not be specified
- more than once per <code title=attr-rel-hyperlink>rel</code>
- attribute.</p>
-
- <p>The link types that contain no U+003A COLON characters (:),
- including all those defined in this specification, are <a href=#ascii-case-insensitive>ASCII
- case-insensitive</a> values<span class=impl>, and must be
- compared as such</span>.</p>
-
- <p class=example>Thus, <code title="">rel="next"</code> is the
- same as <code title="">rel="NEXT"</code>.</p>
-
- <table><thead><tr><th rowspan=2>Link type</th>
- <th colspan=2>Effect on...</th>
- <th rowspan=2>Brief description</th>
- <tr><th><code><a href=#the-link-element>link</a></code></th>
- <th><code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></th>
- <tbody><tr><td><code title=rel-alternate><a href=#link-type-alternate>alternate</a></code></td> <!-- second most used <link rel> value -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives alternate representations of the current document.</td>
- <tr><td><code title=rel-archives><a href=#link-type-archives>archives</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
- <tr><td><code title=rel-author><a href=#link-type-author>author</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to the current document's author.</td>
- <tr><td><code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code></td> <!-- fourth most used <a rel> value -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives the permalink for the nearest ancestor section.</td>
- </tr><!-- (commented out on the assumption that rel=contact is really XFN)
- <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><a href=#link-type-external>external</a></code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the referenced document is not part of the same site as the current document.</td>
- <tr><td><code title=rel-first><a href=#link-type-first>first</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-help><a href=#link-type-help>help</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to context-sensitive help.</td>
- <tr><td><code title=rel-icon><a href=#rel-icon>icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Imports an icon to represent the current document.</td>
- <tr><td><code title=rel-index><a href=#link-type-index>index</a></code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
- <tr><td><code title=rel-last><a href=#link-type-last>last</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-license><a href=#link-type-license>license</a></code></td> <!-- seventh most used <a rel> value -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
- <tr><td><code title=rel-next><a href=#link-type-next>next</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
- <tr><td><code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code></td>
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Requires that the user agent not send an HTTP <code title=http-referer>Referer</code> (sic) header if the user follows the hyperlink.</td>
- <tr><td><code title=rel-pingback><a href=#link-type-pingback>pingback</a></code></td>
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
- <tr><td><code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code></td>
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Specifies that the target resource should be preemptively cached.</td>
- <tr><td><code title=rel-prev><a href=#link-type-prev>prev</a></code></td> <!-- prev is used more than previous -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-search><a href=#link-type-search>search</a></code></td> <!-- used quite a bit -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
- <tr><td><code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Imports a stylesheet.</td>
- <tr><td><code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code></td> <!-- used quite a bit -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-tag><a href=#link-type-tag>tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a tag (identified by the given address) that applies to the current document.</td>
- <tr><td><code title=rel-up><a href=#link-type-up>up</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to a document giving the context for the current document.</td>
- </table><div class=impl>
-
- <p>Some of the types described below list synonyms for these
- values. These <!--<span class="impl">-->are to be handled as
- specified by user agents, but<!--</span>--> must not be used in
- documents.</p>
-
- </div>
-
- <!-- v2 ideas:
- * rel="script"
- * rel="related" // see also
- * http://microformats.org/wiki/rel-enclosure
- -->
-
-
- <h5 id=link-type-alternate><span class=secno>6.12.3.1 </span>Link type "<dfn title=rel-alternate><code>alternate</code></dfn>"</h5>
-
- <p>The <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, if the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute does not also contain the
- keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, it creates a
- <a href=#hyperlink-link title="hyperlink link">hyperlink</a>; but if it
- <em>does</em> also contain the keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword instead modifies the
- meaning of the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></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><a href=#link-type-alternate>alternate</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes.</p>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>
- attribute, it indicates that the referenced document is intended for
- use with the media specified.</p>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>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>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes can be combined
- when specified with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></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>
-
- <div class=impl>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
- attribute set to the value <code title="">application/rss+xml</code>
- or the value <code title="">application/atom+xml</code>, then it
- indicates that the referenced document is a syndication feed (though
- not necessarily syndicating exactly the same content as the current
- page).</p>
-
- <div class=impl>
-
- <p>The first <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code>
- element in the document (in tree order) with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attribute set to the value
- <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
- syndication feed for the purposes of feed autodiscovery.</p>
-
- <div class=example>
- <p>The following <code><a href=#the-link-element>link</a></code> element gives the syndication
- feed for the current page:</p>
- <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
- <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
- <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
-</ul></pre>
- </div>
-
- </div>
-
-
-
-
- </div>
-
- <p>The <code title=rel-alternate><a href=#link-type-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=#link-type-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.</p>
-
-
- <h5 id=link-type-archives><span class=secno>6.12.3.2 </span>Link type "<dfn title=rel-archives><code>archives</code></dfn>"</h5>
-
- <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></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>
-
- <div class=impl>
-
- <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=#link-type-archives>archives</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=link-type-author><span class=secno>6.12.3.3 </span>Link type "<dfn title=rel-author><code>author</code></dfn>"</h5>
-
- <p>The <code title=rel-author><a href=#link-type-author>author</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
- referenced document provides further information about the author of
- the nearest <code><a href=#the-article-element>article</a></code> element ancestor of the element
- defining the hyperlink, if there is one, or of the page as a whole,
- otherwise.</p>
-
- <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></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> URL giving the e-mail address of the
- author. <a href=#refsMAILTO>[MAILTO]</a></p>
-
- <div class=impl>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and
- <code><a href=#the-area-element>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=#link-type-author>author</a></code> keyword specified as a link
- relationship.</p>
-
- </div>
-
-
- <h5 id=link-type-bookmark><span class=secno>6.12.3.4 </span>Link type "<dfn title=rel-bookmark><code>bookmark</code></dfn>"</h5>
-
- <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword gives a
- permalink for the nearest ancestor <code><a href=#the-article-element>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=#the-article-element>article</a></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>
-
-<!-- (commented out on the assumption that rel=contact is really XFN)
- <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
- author of the nearest <code>article</code> element ancestor of the
- element defining the hyperlink, if there is one, or of the page as a
- whole, otherwise.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
- <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 id=link-type-external><span class=secno>6.12.3.5 </span>Link type "<dfn title=rel-external><code>external</code></dfn>"</h5>
-
- <p>The <code title=rel-external><a href=#link-type-external>external</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-external><a href=#link-type-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.</p>
-
-
- <h5 id=link-type-help><span class=secno>6.12.3.6 </span>Link type "<dfn title=rel-help><code>help</code></dfn>"</h5>
-
- <p>The <code title=rel-help><a href=#link-type-help>help</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-help><a href=#link-type-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.</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><a href=#the-link-element>link</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
- document provides help for the page as a whole.</p>
-
-
- <h5 id=rel-icon><span class=secno>6.12.3.7 </span>Link type "<dfn title=rel-icon><code>icon</code></dfn>"</h5>
-
- <p>The <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <div class=impl>
-
- <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>
-
- </div>
-
- <p>Icons could be auditory icons, visual icons, or other kinds of
- icons. <span class=impl>If multiple icons are provided, the user
- agent must select the most appropriate icon according to the <code title=attr-link-type><a href=#attr-link-type>type</a></code>, <code title=attr-link-media><a href=#attr-link-media>media</a></code>, and <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attributes. If there are
- multiple equally appropriate icons, user agents must use the last
- one declared in <a href=#tree-order>tree order</a>. If the user agent tries to
- use an icon but that icon is determined, upon closer examination, to
- in fact be inappropriate (e.g. because it uses an unsupported
- format), then the user agent must try the next-most-appropriate icon
- as determined by the attributes.</span></p>
-
- <div class=impl>
-
- <p>There is no default type for resources given by the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword. However, for the purposes of
- <a href=#concept-link-type-sniffing>determining the type of the
- resource</a>, user agents must expect the resource to be an image.</p>
-
- </div>
-
- <p>The <dfn id=attr-link-sizes title=attr-link-sizes><code>sizes</code></dfn>
- attribute gives the sizes of icons for visual media.</p>
-
- <p>If specified, the attribute must have a value that is an
- <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a>. The
- values must all be either <code title=attr-link-sizes-any><a href=#attr-link-sizes-any>any</a></code> or a value that consists of
- two <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
- integers</a> that do not have a leading U+0030 DIGIT ZERO (0)
- character and that are separated by a single U+0078 LATIN SMALL
- LETTER X character (x).</p>
-
- <p>The keywords represent icon sizes.</p>
-
- <div class=impl>
-
- <p>To parse and process the attribute's value, the user agent must
- first <a href=#split-a-string-on-spaces title="split a string on spaces">split the attribute's
- value on spaces</a>, and must then parse each resulting keyword
- to determine what it represents.</p>
-
- </div>
-
- <p>The <dfn id=attr-link-sizes-any title=attr-link-sizes-any><code>any</code></dfn> keyword
- represents that the resource contains a scalable icon, e.g. as
- provided by an SVG image.</p>
-
- <div class=impl>
-
- <p>Other keywords must be further parsed as follows to determine
- what they represent:</p>
-
- <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
- SMALL LETTER X character (x), then this keyword doesn't represent
- anything. Abort these steps for that keyword.</li>
-
- <li><p>Let <var title="">width string</var> be the string before
- the "<code title="">x</code>".</li>
-
- <li><p>Let <var title="">height string</var> be the string after the
- "<code title="">x</code>".</li>
-
- <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
- character or contain any characters other than characters in the
- range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
- keyword doesn't represent anything. Abort these steps for that
- keyword.</li>
-
- <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
- integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</li>
-
- <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
- integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</li>
-
- <li><p>The keyword represents that the resource contains a bitmap
- icon with a width of <var title="">width</var> device pixels and a
- height of <var title="">height</var> device pixels.</li>
-
- </ul></div>
-
- <p>The keywords specified on the <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute must not represent
- icon sizes that are not actually available in the linked
- resource.</p>
-
- <div class=impl>
-
- <p>If the attribute is not specified, then the user agent must
- assume that the given icon is appropriate, but less appropriate than
- an icon of a known and appropriate size.</p>
-
- </div>
-
- <div class=example>
-
- <p>The following snippet shows the top part of an application with
- several icons.</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>lsForums — Inbox</title>
- <link rel=icon href=favicon.png sizes="16x16" type="image/png">
- <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
- <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
- <link rel=icon href=iphone.png sizes="59x60" type="image/png">
- <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
- <link rel=stylesheet href=lsforums.css>
- <script src=lsforums.js></script>
- <meta name=application-name content="lsForums">
- </head>
- <body>
- ...</pre>
-
- </div>
-
-
- <h5 id=link-type-license><span class=secno>6.12.3.8 </span>Link type "<dfn title=rel-license><code>license</code></dfn>"</h5>
-
- <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword indicates
- that the referenced document provides the copyright license terms
- under which the main content of the current document is
- provided.</p>
-
- <p>This specification does not specify how to distinguish between
- the main content of a document and content that is not deemed to be
- part of that main content. The distinction should be made clear to
- the user.</p>
-
- <div class=example>
-
- <p>Consider a photo sharing site. A page on that site might
- describe and show a photograph, and the page might be marked up as
- follows:</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>Exampl Pictures: Kissat</title>
- <link rel="stylesheet" href="/style/default">
- </head>
- <body>
- <h1>Kissat</h1>
- <nav>
- <a href="../">Return to photo index</a>
- </nav>
- <figure>
- <img src="/pix/39627052_fd8dcd98b5.jpg">
- <figcaption>Kissat</figcaption>
- </figure>
- <p>One of them has six toes!</p>
- <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
- <footer>
- <a href="/">Home</a> | <a href="../">Photo index</a>
- <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
- </footer>
- </body>
-</html></pre>
-
- <p>In this case the <code title=rel-license><a href=#link-type-license>license</a></code>
- applies to just the photo (the main content of the document), not
- the whole document. In particular not the design of the page
- itself, which is covered by the copyright given at the bottom of
- the document. This could be made clearer in the styling
- (e.g. making the license link prominently positioned near the
- photograph, while having the page copyright in light small text at
- the foot of the page.</p>
-
- </div>
-
- <div class=impl>
-
- <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=#link-type-license>license</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=link-type-nofollow><span class=secno>6.12.3.9 </span>Link type "<dfn title=rel-nofollow><code>nofollow</code></dfn>"</h5>
-
- <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword indicates
- that the link is not endorsed by the original author or publisher of
- the page, or that the link to the referenced document was included
- primarily because of a commercial relationship between people
- affiliated with the two pages.</p>
-
-
- <h5 id=link-type-noreferrer><span class=secno>6.12.3.10 </span>Link type "<dfn title=rel-noreferrer><code>noreferrer</code></dfn>"</h5>
-
- <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>It indicates that no referrer information is to be leaked when
- following the link.</p>
-
- <div class=impl>
-
- <p>If a user agent follows a link defined by an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element that has the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword, the user agent
- must not include a <code title=http-referer>Referer</code> (sic)
- HTTP header (<a href=#concept-http-equivalent-headers title=concept-http-equivalent-headers>or
- equivalent</a> for other protocols) in the request.</p>
-
- <p>This keyword also <a href=#noopener>causes the <code title=dom-opener>opener</code> attribute to remain null</a> if the
- hyperlink creates a new <a href=#browsing-context>browsing context</a>.</p>
-
- </div>
-
- <!-- v2: Would be nice to apply this to other elements too,
- e.g. letting <img> or CSS or <video> hide the referrer -->
-
-
- <h5 id=link-type-pingback><span class=secno>6.12.3.11 </span>Link type "<dfn title=rel-pingback><code>pingback</code></dfn>"</h5>
-
- <p>The <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <p>For the semantics of the <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword, see the Pingback 1.0
- specification. <a href=#refsPINGBACK>[PINGBACK]</a></p>
-
-
- <h5 id=link-type-prefetch><span class=secno>6.12.3.12 </span>Link type "<dfn title=rel-prefetch><code>prefetch</code></dfn>"</h5>
-
- <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <p>The <code title=rel-prefetch><a href=#link-type-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.</p>
-
- <p>There is no default type for resources given by the <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword.</p>
-
-
- <h5 id=link-type-search><span class=secno>6.12.3.13 </span>Link type "<dfn title=rel-search><code>search</code></dfn>"</h5>
-
- <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-search><a href=#link-type-search>search</a></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><a href=#the-link-element>link</a></code> elements and the <code title=rel-search><a href=#link-type-search>search</a></code> link type to enable user agents to
- autodiscover search interfaces. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
-
-
- <h5 id=link-type-stylesheet><span class=secno>6.12.3.14 </span>Link type "<dfn title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
-
- <p>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a> that
- contributes to the <a href=#styling>styling processing model</a>.</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><a href=#link-type-alternate>alternate</a></code> keyword is
- also specified on the <code><a href=#the-link-element>link</a></code> element, then <dfn id=the-link-is-an-alternative-stylesheet>the link
- is an alternative stylesheet</dfn>; in this case, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute must be specified on the
- <code><a href=#the-link-element>link</a></code> element, with a non-empty value.</p>
-
- <p>The default type for resources given by the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
-
- <div class=impl>
-
- <p><strong>Quirk</strong>: If the document has been set to
- <a href=#quirks-mode>quirks mode</a> and the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the external
- resource is not a supported style sheet type, the user agent must
- instead assume it to be <code title="">text/css</code>.</p>
-
- </div>
-
-
- <h5 id=link-type-sidebar><span class=secno>6.12.3.15 </span>Link type "<dfn title=rel-sidebar><code>sidebar</code></dfn>"</h5>
-
- <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword indicates
- that the referenced document, if retrieved, is intended to be shown
- in a <a href=#secondary-browsing-context>secondary browsing context</a> (if possible), instead
- of in the current <a href=#browsing-context>browsing context</a>.</p>
-
- <p>A <a href=#hyperlink title=hyperlink>hyperlink element</a> with the <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword specified is a <dfn id=rel-sidebar-hyperlink title=rel-sidebar-hyperlink>sidebar hyperlink</dfn>.</p>
-
-
- <h5 id=link-type-tag><span class=secno>6.12.3.16 </span>Link type "<dfn title=rel-tag><code>tag</code></dfn>"</h5>
-
- <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword indicates that the
- <em>tag</em> that the referenced document represents applies to the
- current document.</p>
-
- <p class=note>Since it indicates that the tag <em>applies to the
- current document</em>, it would be inappropriate to use this keyword
- in the markup of a <a href=#tag-cloud>tag cloud</a>, which lists
- the popular tag across a set of pages.</p>
-
-
- <h5 id=hierarchical-link-types><span class=secno>6.12.3.17 </span>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. The document of which a document is a
- subdocument is said to be the document's <em>parent</em>. A document
- with no parent forms the top of the hierarchy.</p>
-
- <p>A document may be part of multiple hierarchies.</p>
-
-
- <h6 id=link-type-index><span class=secno>6.12.3.17.1 </span>Link type "<dfn title=rel-index><code>index</code></dfn>"</h6>
-
- <p>The <code title=rel-index><a href=#link-type-index>index</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-index><a href=#link-type-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. It
- conveys more information when used with the <code title=rel-up><a href=#link-type-up>up</a></code> keyword (q.v.).</p>
-
- <div class=impl>
-
- <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=#link-type-index>index</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-up><span class=secno>6.12.3.17.2 </span>Link type "<dfn title=rel-up><code>up</code></dfn>"</h6>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword indicates that the
- document is part of a hierarchical structure, and that the link is
- leading to a document that is an ancestor of the current
- document.</p>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be repeated within
- a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute to indicate
- the hierarchical distance from the current document to the
- referenced document. If it occurs only once, then the link is
- leading to the current document's parent; each additional occurrence
- of the keyword represents one further level. If the <code title=rel-index><a href=#link-type-index>index</a></code> keyword is also present, then the
- number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords is the depth of
- the current page relative to the top of the hierarchy. Only one link
- is created for the set of one or more <code title=rel-up><a href=#link-type-up>up</a></code>
- keywords and, if present, the <code title=rel-index><a href=#link-type-index>index</a></code>
- keyword.</p>
-
- <p>If the page is part of multiple hierarchies, then they should be
- described in different <a href=#paragraph title=paragraph>paragraphs</a>. <span class=impl>User agents
- must scope any interpretation of the <code title=rel-up><a href=#link-type-up>up</a></code>
- and <code title=rel-index><a href=#link-type-index>index</a></code> keywords together
- indicating the depth of the hierarchy to the <a href=#paragraph>paragraph</a>
- in which the link finds itself, if any, or to the document
- otherwise.</span></p>
-
- <div class=impl>
-
- <p>When two links have both the <code title=rel-up><a href=#link-type-up>up</a></code> and
- <code title=rel-index><a href=#link-type-index>index</a></code> keywords specified together in
- the same scope and contradict each other by having a different
- number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords, the link with the
- greater number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords must be
- taken as giving the depth of the document.</p>
-
- </div>
-
- <div class=example>
-
- <p>This can be used to mark up a navigation style sometimes known
- as bread crumbs. In the following example, the current page can be
- reached via two paths.</p>
-
- <pre><nav>
- <p>
- <a href="/" rel="index up up up">Main</a> >
- <a href="/products/" rel="up up">Products</a> >
- <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
- <a>Second hand</a>
- </p>
- <p>
- <a href="/" rel="index up up">Main</a> >
- <a href="/second-hand/" rel="up">Second hand</a> >
- <a>Dishwashers</a>
- </p>
-</nav></pre>
-
- </div>
-
- <p class=note>The <code title=dom-a-relList><a href=#dom-a-rellist>relList</a></code> IDL
- attribute (e.g. on the <code><a href=#the-a-element>a</a></code> element) does not currently
- represent multiple <code title=rel-up><a href=#link-type-up>up</a></code> keywords (the
- interface hides duplicates).</p>
-
-
- <h5 id=sequential-link-types><span class=secno>6.12.3.18 </span>Sequential link types</h5>
-
- <p>Some documents form part of a sequence of documents.</p>
-
- <p>A sequence of documents is one where each document can have a
- <em>previous sibling</em> and a <em>next sibling</em>. A document
- with no previous sibling is the start of its sequence, a document
- with no next sibling is the end of its sequence.</p>
-
- <p>A document may be part of multiple sequences.</p>
-
-
- <h6 id=link-type-first><span class=secno>6.12.3.18.1 </span>Link type "<dfn title=rel-first><code>first</code></dfn>"</h6>
-
- <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword indicates that
- the document is part of a sequence, and that the link is leading to
- the document that is the first logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-first>first</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-last><span class=secno>6.12.3.18.2 </span>Link type "<dfn title=rel-last><code>last</code></dfn>"</h6>
-
- <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the last logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-last>last</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-next><span class=secno>6.12.3.18.3 </span>Link type "<dfn title=rel-next><code>next</code></dfn>"</h6>
-
- <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the next logical document in the sequence.</p>
-
-
- <h6 id=link-type-prev><span class=secno>6.12.3.18.4 </span>Link type "<dfn title=rel-prev><code>prev</code></dfn>"</h6>
-
- <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the previous logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-prev>prev</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=other-link-types><span class=secno>6.12.3.19 </span>Other link types</h5>
-
- <p><dfn id=concept-rel-extensions title=concept-rel-extensions>Extensions to the predefined
- set of link types</dfn> may be registered in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
- RelExtensions page</a>. <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>
-
- <p>If the value contains a U+003A COLON character (:), it must
- also be an <a href=#absolute-url>absolute URL</a>.</p>
-
- </dd>
-
-
- <dt>Effect on... <code><a href=#the-link-element>link</a></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 href=#the-link-element>link</a></code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
- it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink
- link</a>.</dd>
-
- <dt>External Resource</dt>
-
- <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
- it creates a <a href=#external-resource-link title="external resource link">external
- resource link</a>.</dd>
-
- </dl></dd>
-
-
- <dt>Effect on... <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></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 href=#the-a-element>a</a></code>
- and <code><a href=#the-area-element>area</a></code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on <code><a href=#the-a-element>a</a></code> and
- <code><a href=#the-area-element>area</a></code> elements.</dd>
-
- </dl></dd>
-
-
- <dt>Brief description</dt>
-
- <dd><p>A short non-normative description of what the keyword's
- meaning is.</dd>
-
-
- <dt>Specification</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.</dd>
-
-
- <dt>Synonyms</dt>
-
- <dd><p>A list of other keyword values that have exactly the same
- processing requirements. Authors should not use the values defined
- to be synonyms, they are only intended to allow user agents to
- support legacy content. Anyone may remove synonyms that are not
- used in practice; only names that need to be processed as synonyms
- for compatibility with legacy content are to be registered in this
- way.</dd>
-
-
- <dt>Status</dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl><dt>Proposed</dt>
-
- <dd>The keyword has not received wide peer review and
- approval. Someone has proposed it and is, or soon will be, using
- it.</dd>
-
- <dt>Ratified</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 it in
- incorrect ways.</dd>
-
- <dt>Discontinued</dt>
-
- <dd>The keyword has received wide peer review and it has been
- found wanting. Existing pages are using this keyword, but new
- pages should avoid it. The "brief description" and
- "specification" entries will give details of what authors should
- use instead, if anything.</dd>
-
- </dl><p>If a keyword is found to be redundant with existing values, it
- should be removed and listed as a synonym for the existing
- value.</p>
-
- <p>If a keyword is registered in the "proposed" state for a
- period of a month or more without being used or specified, then it
- may be removed from the registry.</p>
-
- <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
- changed to "discontinued" status.</p>
-
- <p>Anyone can change the status at any time, but should only do so
- in accordance with the definitions above.</p>
-
- </dd>
-
- </dl><div class=impl>
-
- <p>Conformance checkers must use the information given on the WHATWG
- Wiki RelExtensions page to establish if a value is allowed or not:
- values defined in this specification or marked as "proposed" or
- "ratified" must be accepted when used on the elements for which they
- apply as described in the "Effect on..." field, whereas values
- marked as "discontinued" or not listed in either this specification
- or on the aforementioned page must be rejected as invalid.
- Conformance checkers may cache this information (e.g. for
- performance reasons or to avoid the use of unreliable network
- connectivity).</p>
-
- <p>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 "proposed" status.</p>
-
- </div>
-
- <p>Types defined as extensions in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
- RelExtensions page</a> with the status "proposed" or "ratified" may
- be used with the <code title="">rel</code> attribute on
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code> elements in
- accordance to the "Effect on..." field. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
-
-
-
<h2 id=webstorage><span class=secno>7 </span>Web Storage</h2>
Modified: index
===================================================================
--- index 2010-02-05 23:09:54 UTC (rev 4665)
+++ index 2010-02-05 23:16:41 UTC (rev 4666)
@@ -605,15 +605,50 @@
<li><a href=#devices><span class=secno>4.11.6 </span>The <code>device</code> element</a>
<ol>
<li><a href=#stream-api><span class=secno>4.11.6.1 </span>Stream API</a></ol></ol></li>
- <li><a href=#common-idioms-without-dedicated-elements><span class=secno>4.12 </span>Common idioms without dedicated elements</a>
+ <li><a href=#links><span class=secno>4.12 </span>Links</a>
<ol>
- <li><a href=#tag-clouds><span class=secno>4.12.1 </span>Tag clouds</a></li>
- <li><a href=#conversations><span class=secno>4.12.2 </span>Conversations</a></li>
- <li><a href=#footnotes><span class=secno>4.12.3 </span>Footnotes</a></ol></li>
- <li><a href=#matching-html-elements-using-selectors><span class=secno>4.13 </span>Matching HTML elements using selectors</a>
+ <li><a href=#hyperlink-elements><span class=secno>4.12.1 </span>Hyperlink elements</a></li>
+ <li><a href=#following-hyperlinks><span class=secno>4.12.2 </span>Following hyperlinks</a>
+ <ol>
+ <li><a href=#hyperlink-auditing><span class=secno>4.12.2.1 </span>Hyperlink auditing</a></ol></li>
+ <li><a href=#linkTypes><span class=secno>4.12.3 </span>Link types</a>
+ <ol>
+ <li><a href=#link-type-alternate><span class=secno>4.12.3.1 </span>Link type "<code>alternate</code>"</a></li>
+ <li><a href=#link-type-archives><span class=secno>4.12.3.2 </span>Link type "<code>archives</code>"</a></li>
+ <li><a href=#link-type-author><span class=secno>4.12.3.3 </span>Link type "<code>author</code>"</a></li>
+ <li><a href=#link-type-bookmark><span class=secno>4.12.3.4 </span>Link type "<code>bookmark</code>"</a></li>
+ <li><a href=#link-type-external><span class=secno>4.12.3.5 </span>Link type "<code>external</code>"</a></li>
+ <li><a href=#link-type-help><span class=secno>4.12.3.6 </span>Link type "<code>help</code>"</a></li>
+ <li><a href=#rel-icon><span class=secno>4.12.3.7 </span>Link type "<code>icon</code>"</a></li>
+ <li><a href=#link-type-license><span class=secno>4.12.3.8 </span>Link type "<code>license</code>"</a></li>
+ <li><a href=#link-type-nofollow><span class=secno>4.12.3.9 </span>Link type "<code>nofollow</code>"</a></li>
+ <li><a href=#link-type-noreferrer><span class=secno>4.12.3.10 </span>Link type "<code>noreferrer</code>"</a></li>
+ <li><a href=#link-type-pingback><span class=secno>4.12.3.11 </span>Link type "<code>pingback</code>"</a></li>
+ <li><a href=#link-type-prefetch><span class=secno>4.12.3.12 </span>Link type "<code>prefetch</code>"</a></li>
+ <li><a href=#link-type-search><span class=secno>4.12.3.13 </span>Link type "<code>search</code>"</a></li>
+ <li><a href=#link-type-stylesheet><span class=secno>4.12.3.14 </span>Link type "<code>stylesheet</code>"</a></li>
+ <li><a href=#link-type-sidebar><span class=secno>4.12.3.15 </span>Link type "<code>sidebar</code>"</a></li>
+ <li><a href=#link-type-tag><span class=secno>4.12.3.16 </span>Link type "<code>tag</code>"</a></li>
+ <li><a href=#hierarchical-link-types><span class=secno>4.12.3.17 </span>Hierarchical link types</a>
+ <ol>
+ <li><a href=#link-type-index><span class=secno>4.12.3.17.1 </span>Link type "<code>index</code>"</a></li>
+ <li><a href=#link-type-up><span class=secno>4.12.3.17.2 </span>Link type "<code>up</code>"</a></ol></li>
+ <li><a href=#sequential-link-types><span class=secno>4.12.3.18 </span>Sequential link types</a>
+ <ol>
+ <li><a href=#link-type-first><span class=secno>4.12.3.18.1 </span>Link type "<code>first</code>"</a></li>
+ <li><a href=#link-type-last><span class=secno>4.12.3.18.2 </span>Link type "<code>last</code>"</a></li>
+ <li><a href=#link-type-next><span class=secno>4.12.3.18.3 </span>Link type "<code>next</code>"</a></li>
+ <li><a href=#link-type-prev><span class=secno>4.12.3.18.4 </span>Link type "<code>prev</code>"</a></ol></li>
+ <li><a href=#other-link-types><span class=secno>4.12.3.19 </span>Other link types</a></ol></ol></li>
+ <li><a href=#common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</a>
<ol>
- <li><a href=#selectors><span class=secno>4.13.1 </span>Case-sensitivity</a></li>
- <li><a href=#pseudo-classes><span class=secno>4.13.2 </span>Pseudo-classes</a></ol></ol></li>
+ <li><a href=#tag-clouds><span class=secno>4.13.1 </span>Tag clouds</a></li>
+ <li><a href=#conversations><span class=secno>4.13.2 </span>Conversations</a></li>
+ <li><a href=#footnotes><span class=secno>4.13.3 </span>Footnotes</a></ol></li>
+ <li><a href=#matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</a>
+ <ol>
+ <li><a href=#selectors><span class=secno>4.14.1 </span>Case-sensitivity</a></li>
+ <li><a href=#pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</a></ol></ol></li>
<li><a href=#microdata><span class=secno>5 </span>Microdata</a>
<ol>
<li><a href=#introduction-1><span class=secno>5.1 </span>Introduction</a>
@@ -757,42 +792,7 @@
<li><a href=#unloading-documents><span class=secno>6.11.10 </span>Unloading documents</a>
<ol>
<li><a href=#event-definition><span class=secno>6.11.10.1 </span>Event definition</a></ol></li>
- <li><a href=#aborting-a-document-load><span class=secno>6.11.11 </span>Aborting a document load</a></ol></li>
- <li><a href=#links><span class=secno>6.12 </span>Links</a>
- <ol>
- <li><a href=#hyperlink-elements><span class=secno>6.12.1 </span>Hyperlink elements</a></li>
- <li><a href=#following-hyperlinks><span class=secno>6.12.2 </span>Following hyperlinks</a>
- <ol>
- <li><a href=#hyperlink-auditing><span class=secno>6.12.2.1 </span>Hyperlink auditing</a></ol></li>
- <li><a href=#linkTypes><span class=secno>6.12.3 </span>Link types</a>
- <ol>
- <li><a href=#link-type-alternate><span class=secno>6.12.3.1 </span>Link type "<code>alternate</code>"</a></li>
- <li><a href=#link-type-archives><span class=secno>6.12.3.2 </span>Link type "<code>archives</code>"</a></li>
- <li><a href=#link-type-author><span class=secno>6.12.3.3 </span>Link type "<code>author</code>"</a></li>
- <li><a href=#link-type-bookmark><span class=secno>6.12.3.4 </span>Link type "<code>bookmark</code>"</a></li>
- <li><a href=#link-type-external><span class=secno>6.12.3.5 </span>Link type "<code>external</code>"</a></li>
- <li><a href=#link-type-help><span class=secno>6.12.3.6 </span>Link type "<code>help</code>"</a></li>
- <li><a href=#rel-icon><span class=secno>6.12.3.7 </span>Link type "<code>icon</code>"</a></li>
- <li><a href=#link-type-license><span class=secno>6.12.3.8 </span>Link type "<code>license</code>"</a></li>
- <li><a href=#link-type-nofollow><span class=secno>6.12.3.9 </span>Link type "<code>nofollow</code>"</a></li>
- <li><a href=#link-type-noreferrer><span class=secno>6.12.3.10 </span>Link type "<code>noreferrer</code>"</a></li>
- <li><a href=#link-type-pingback><span class=secno>6.12.3.11 </span>Link type "<code>pingback</code>"</a></li>
- <li><a href=#link-type-prefetch><span class=secno>6.12.3.12 </span>Link type "<code>prefetch</code>"</a></li>
- <li><a href=#link-type-search><span class=secno>6.12.3.13 </span>Link type "<code>search</code>"</a></li>
- <li><a href=#link-type-stylesheet><span class=secno>6.12.3.14 </span>Link type "<code>stylesheet</code>"</a></li>
- <li><a href=#link-type-sidebar><span class=secno>6.12.3.15 </span>Link type "<code>sidebar</code>"</a></li>
- <li><a href=#link-type-tag><span class=secno>6.12.3.16 </span>Link type "<code>tag</code>"</a></li>
- <li><a href=#hierarchical-link-types><span class=secno>6.12.3.17 </span>Hierarchical link types</a>
- <ol>
- <li><a href=#link-type-index><span class=secno>6.12.3.17.1 </span>Link type "<code>index</code>"</a></li>
- <li><a href=#link-type-up><span class=secno>6.12.3.17.2 </span>Link type "<code>up</code>"</a></ol></li>
- <li><a href=#sequential-link-types><span class=secno>6.12.3.18 </span>Sequential link types</a>
- <ol>
- <li><a href=#link-type-first><span class=secno>6.12.3.18.1 </span>Link type "<code>first</code>"</a></li>
- <li><a href=#link-type-last><span class=secno>6.12.3.18.2 </span>Link type "<code>last</code>"</a></li>
- <li><a href=#link-type-next><span class=secno>6.12.3.18.3 </span>Link type "<code>next</code>"</a></li>
- <li><a href=#link-type-prev><span class=secno>6.12.3.18.4 </span>Link type "<code>prev</code>"</a></ol></li>
- <li><a href=#other-link-types><span class=secno>6.12.3.19 </span>Other link types</a></ol></ol></ol></li>
+ <li><a href=#aborting-a-document-load><span class=secno>6.11.11 </span>Aborting a document load</a></ol></ol></li>
<li><a href=#editing><span class=secno>7 </span>User Interaction</a>
<ol>
<li><a href=#the-hidden-attribute><span class=secno>7.1 </span>The <code>hidden</code> attribute</a></li>
@@ -44354,10 +44354,1343 @@
- <h3 id=common-idioms-without-dedicated-elements><span class=secno>4.12 </span>Common idioms without dedicated elements</h3>
- <h4 id=tag-clouds><span class=secno>4.12.1 </span>Tag clouds</h4>
+ <h3 id=links><span class=secno>4.12 </span>Links</h3>
+
+ <h4 id=hyperlink-elements><span class=secno>4.12.1 </span>Hyperlink elements</h4>
+
+ <p>The <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, and <code><a href=#the-link-element>link</a></code>
+ elements can, in certain situations described in the definitions of
+ those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
+
+ <p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
+ attribute on a hyperlink element must have a value that is a
+ <a href=#valid-url>valid URL</a>. This URL is the <em>destination
+ resource</em> of the hyperlink.</p>
+
+ <div class=note>
+
+ <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
+ <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
+ those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
+ represent hyperlinks.</p>
+
+ <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
+ <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
+ <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
+ the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
+ of that element.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
+ attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
+ or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
+ context</a> that will be used. <span class=impl>User agents use
+ this name when <a href=#following-hyperlinks>following hyperlinks</a>.</span></p>
+
+ <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
+ present, gives the URLs of the resources that are interested in
+ being notified if the user follows the hyperlink. The value must be
+ a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
+ <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
+ value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
+ auditing</a>.</span></p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>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=attr-hyperlink-rel title=attr-hyperlink-rel><code>rel</code></dfn> attribute, which
+ must be a <a href=#set-of-space-separated-tokens>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=#attr-hyperlink-rel>rel</a></code> attribute has
+ no default value. If the attribute is omitted or if none of the
+ values in the attribute are recognized by the user agent, then the
+ document has no particular relationship with the destination
+ resource other than there being a hyperlink between the two.</p>
+
+ <p>The <dfn id=attr-hyperlink-media 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 <a href=#valid-media-query>valid
+ media query</a>. The default, if the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code> attribute is omitted, is
+ "<code title="">all</code>".</p>
+
+ <p>The <dfn id=attr-hyperlink-hreflang 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 BCP 47 language code. <a href=#refsBCP47>[BCP47]</a>
+ <span class=impl>User agents must not consider this attribute
+ authoritative — upon fetching the resource, user agents must
+ use only language information associated with the resource to
+ determine its language, not metadata included in the link to the
+ resource.</span></p>
+
+ <p>The <dfn id=attr-hyperlink-type title=attr-hyperlink-type><code>type</code></dfn>
+ attribute, if present, gives the <a href=#mime-type>MIME type</a> of the
+ linked resource. It is purely advisory. The value must be a
+ <a href=#valid-mime-type>valid MIME type</a>. <span class=impl>User agents must
+ not consider the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>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.</span></p>
+
+
+ <div class=impl>
+
+ <h4 id=following-hyperlinks><span class=secno>4.12.2 </span><dfn>Following hyperlinks</dfn></h4>
+
+ <p>When a user <em>follows a hyperlink</em>, the user agent must
+ <a href=#resolve-a-url title="resolve a url">resolve</a> the <a href=#url>URL</a>
+ given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute
+ of that hyperlink, relative to the hyperlink element, and if that is
+ successful, must <a href=#navigate>navigate</a> a <a href=#browsing-context>browsing
+ context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
+ case of server-side image maps, the URL of the hyperlink must
+ further have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it.</p>
+
+ <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ <a href=#url>URL</a> fails, the user agent may report the error to the
+ user in a user-agent-specific manner, may navigate to an error page
+ to report the error, or may ignore the error and do nothing.</p>
+
+ <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
+ 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 <a href=#browsing-context>browsing context</a> that is
+ navigated.</p>
+
+ <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has a <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, then the
+ <a href=#browsing-context>browsing context</a> that is navigated must be chosen by
+ applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
+ browsing context name</a>, using the value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute as the
+ browsing context name. If these rules result in the creation of a
+ new <a href=#browsing-context>browsing context</a>, it must be navigated with
+ <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+ <p>Otherwise, if the hyperlink element is a <a href=#rel-sidebar-hyperlink 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>
+
+ <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but one of
+ the child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
+ <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the browsing
+ context that is navigated must be chosen by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
+ for choosing a browsing context given a browsing context name</a>,
+ using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code>
+ attribute of the first such <code><a href=#the-base-element>base</a></code> element as the
+ browsing context name. If these rules result in the creation of a
+ new <a href=#browsing-context>browsing context</a>, it must be navigated with
+ <a href=#replacement-enabled>replacement enabled</a>.</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>
+
+ <p>The navigation must be done with the <a href=#browsing-context>browsing
+ context</a> that contains the <code>Document</code> object with
+ which the hyperlink's element in question is associated as the
+ <a href=#source-browsing-context>source browsing context</a>.</p>
+
+
+ <h5 id=hyperlink-auditing><span class=secno>4.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5>
+
+ <p>If an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>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, and the hyperlink's <a href=#url>URL</a> can
+ be <a href=#resolve-a-url title="resolve a url">resolved</a>, relative to the
+ hyperlink element, without failure, then the user agent must take
+ the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute's value,
+ <a href=#split-a-string-on-spaces title="split a string on spaces">split that string on
+ spaces</a>, <a href=#resolve-a-url title="resolve a url">resolve</a> each
+ resulting token relative to the hyperlink element, and then should
+ send a request (as described below) to each of the resulting <a href=#absolute-url title="absolute URL">absolute URLs</a>. (Tokens that fail to
+ resolve are ignored.) 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 behavior, for
+ example in conjunction with a setting that disables the sending of
+ HTTP <code title=http-referer>Referer</code> (sic) headers. Based
+ on the user's preferences, UAs may either <a href=#ignore>ignore</a> the
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute altogether,
+ or selectively ignore URLs in the list (e.g. ignoring any
+ third-party URLs).</p>
+
+ <p>For URLs that are HTTP URLs, the requests must be performed by
+ <a href=#fetch title=fetch>fetching</a> the specified URLs using the
+ POST method, with an entity body with the <a href=#mime-type>MIME type</a>
+ <code><a href=#text/ping>text/ping</a></code> consisting of the four-character string
+ "<code title="">PING</code>", from the <a href=#origin>origin</a> of the
+ <code>Document</code> containing the <a href=#hyperlink>hyperlink</a>. <!--
+ not http-origin privacy sensitive --> All relevant cookie and HTTP
+ authentication headers must be included in the request. Which other
+ headers are required depends on the URLs involved.</p>
+
+ <dl class=switch><dt>If both the <a href="#the-document's-address" title="the document's address">address</a>
+ of the <code>Document</code> object containing the hyperlink being
+ audited and the ping URL have the <a href=#same-origin>same origin</a></dt>
+
+ <dd>The request must include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with, as its
+ value, the <a href="#the-document's-address" title="the document's address">address</a> of
+ the document containing the hyperlink, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the <a href=#absolute-url>absolute URL</a> of the target of the
+ hyperlink. The request must not include a <code title=http-referer>Referer</code> (sic) HTTP header. <!-- because
+ otherwise it would look like a trustable same-origin POST --></dd>
+
+ <dt>Otherwise, if the origins are different, but the document
+ containing the hyperlink being audited was not retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-referer>Referer</code> (sic) HTTP header [sic] with,
+ as its value, the <a href="#the-document's-current-address" title="the document's current
+ address">current address</a> of the document containing the
+ hyperlink, a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP
+ header with the same value, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the target of the hyperlink.</dd>
+
+ <dt>Otherwise, the origins are different and the document
+ containing the hyperlink being audited was retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the target of the hyperlink. The request must
+ neither include a <code title=http-referer>Referer</code> (sic)
+ HTTP header nor include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header.</dd>
+
+ </dl><p class=note>To save bandwidth, implementors might also wish to
+ consider omitting optional headers such as <code>Accept</code> from
+ these requests.</p>
+
+ <p>User agents must, unless otherwise specified by the user, honor
+ the HTTP headers (including, in particular, redirects and HTTP
+ cookie headers), but must ignore any entity bodies returned in the
+ responses. User agents may close the connection prematurely once
+ they start receiving an entity body. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>For URLs that are not HTTP URLs, the requests must be performed
+ by <a href=#fetch title=fetch>fetching</a> the specified URL normally,
+ and discarding the results.</p>
+
+ <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
+ URLs.</p>
+
+ <p class=example>For example, a visual user agent could include
+ the hostnames of the target ping URLs along with the hyperlink's
+ actual URL in a status bar or tooltip.</p>
+
+ </div>
+
+ <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 URL
+ unobscured.</li>
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.</li>
+
+ <li>It allows the user to disable the notifications without losing
+ the underlying link functionality.</li>
+
+ <li>It allows the UA to optimize 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><a href=#ping>ping</a></code> attribute so that the user
+ agent can make the user experience more transparent.</p>
+
+ </div>
+
+ <!-- resolving ping urls happens at audit time, so base URL changes
+ affect the values of ping attributes -->
+
+
+
+ <h4 id=linkTypes><span class=secno>4.12.3 </span>Link types</h4>
+
+ <p>The following table summarizes 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 <i>referenced document</i> refers to
+ the resource identified by the element representing the link, and
+ the term <i>current document</i> refers to the resource within
+ which the element representing the link finds itself.</p>
+
+ <div class=impl>
+
+ <p>To determine which link types apply to a <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code> element, the element's <code title="">rel</code> attribute must be <a href=#split-a-string-on-spaces title="split a string on
+ spaces">split on spaces</a>. The resulting tokens are the link
+ types that apply to that element.</p>
+
+ </div>
+
+ <p>Except where otherwise specified, a keyword must not be specified
+ more than once per <code title=attr-rel-hyperlink>rel</code>
+ attribute.</p>
+
+ <p>The link types that contain no U+003A COLON characters (:),
+ including all those defined in this specification, are <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> values<span class=impl>, and must be
+ compared as such</span>.</p>
+
+ <p class=example>Thus, <code title="">rel="next"</code> is the
+ same as <code title="">rel="NEXT"</code>.</p>
+
+ <table><thead><tr><th rowspan=2>Link type</th>
+ <th colspan=2>Effect on...</th>
+ <th rowspan=2>Brief description</th>
+ <tr><th><code><a href=#the-link-element>link</a></code></th>
+ <th><code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></th>
+ <tbody><tr><td><code title=rel-alternate><a href=#link-type-alternate>alternate</a></code></td> <!-- second most used <link rel> value -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives alternate representations of the current document.</td>
+ <tr><td><code title=rel-archives><a href=#link-type-archives>archives</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
+ <tr><td><code title=rel-author><a href=#link-type-author>author</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to the current document's author.</td>
+ <tr><td><code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code></td> <!-- fourth most used <a rel> value -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives the permalink for the nearest ancestor section.</td>
+ </tr><!-- (commented out on the assumption that rel=contact is really XFN)
+ <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><a href=#link-type-external>external</a></code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the referenced document is not part of the same site as the current document.</td>
+ <tr><td><code title=rel-first><a href=#link-type-first>first</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-help><a href=#link-type-help>help</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to context-sensitive help.</td>
+ <tr><td><code title=rel-icon><a href=#rel-icon>icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports an icon to represent the current document.</td>
+ <tr><td><code title=rel-index><a href=#link-type-index>index</a></code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
+ <tr><td><code title=rel-last><a href=#link-type-last>last</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-license><a href=#link-type-license>license</a></code></td> <!-- seventh most used <a rel> value -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
+ <tr><td><code title=rel-next><a href=#link-type-next>next</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
+ <tr><td><code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code></td>
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Requires that the user agent not send an HTTP <code title=http-referer>Referer</code> (sic) header if the user follows the hyperlink.</td>
+ <tr><td><code title=rel-pingback><a href=#link-type-pingback>pingback</a></code></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
+ <tr><td><code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Specifies that the target resource should be preemptively cached.</td>
+ <tr><td><code title=rel-prev><a href=#link-type-prev>prev</a></code></td> <!-- prev is used more than previous -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-search><a href=#link-type-search>search</a></code></td> <!-- used quite a bit -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
+ <tr><td><code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports a stylesheet.</td>
+ <tr><td><code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code></td> <!-- used quite a bit -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-tag><a href=#link-type-tag>tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a tag (identified by the given address) that applies to the current document.</td>
+ <tr><td><code title=rel-up><a href=#link-type-up>up</a></code></td>
+ <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to a document giving the context for the current document.</td>
+ </table><div class=impl>
+
+ <p>Some of the types described below list synonyms for these
+ values. These <!--<span class="impl">-->are to be handled as
+ specified by user agents, but<!--</span>--> must not be used in
+ documents.</p>
+
+ </div>
+
+ <!-- v2 ideas:
+ * rel="script"
+ * rel="related" // see also
+ * http://microformats.org/wiki/rel-enclosure
+ -->
+
+
+ <h5 id=link-type-alternate><span class=secno>4.12.3.1 </span>Link type "<dfn title=rel-alternate><code>alternate</code></dfn>"</h5>
+
+ <p>The <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, if the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute does not also contain the
+ keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, it creates a
+ <a href=#hyperlink-link title="hyperlink link">hyperlink</a>; but if it
+ <em>does</em> also contain the keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword instead modifies the
+ meaning of the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></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><a href=#link-type-alternate>alternate</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes.</p>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>
+ attribute, it indicates that the referenced document is intended for
+ use with the media specified.</p>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>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>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes can be combined
+ when specified with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></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>
+
+ <div class=impl>
+
+ <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
+ attribute set to the value <code title="">application/rss+xml</code>
+ or the value <code title="">application/atom+xml</code>, then it
+ indicates that the referenced document is a syndication feed (though
+ not necessarily syndicating exactly the same content as the current
+ page).</p>
+
+ <div class=impl>
+
+ <p>The first <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code>
+ element in the document (in tree order) with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attribute set to the value
+ <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
+ syndication feed for the purposes of feed autodiscovery.</p>
+
+ <div class=example>
+ <p>The following <code><a href=#the-link-element>link</a></code> element gives the syndication
+ feed for the current page:</p>
+ <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
+ <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
+ <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
+</ul></pre>
+ </div>
+
+ </div>
+
+
+
+
+ </div>
+
+ <p>The <code title=rel-alternate><a href=#link-type-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=#link-type-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.</p>
+
+
+ <h5 id=link-type-archives><span class=secno>4.12.3.2 </span>Link type "<dfn title=rel-archives><code>archives</code></dfn>"</h5>
+
+ <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></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>
+
+ <div class=impl>
+
+ <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=#link-type-archives>archives</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=link-type-author><span class=secno>4.12.3.3 </span>Link type "<dfn title=rel-author><code>author</code></dfn>"</h5>
+
+ <p>The <code title=rel-author><a href=#link-type-author>author</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
+ referenced document provides further information about the author of
+ the nearest <code><a href=#the-article-element>article</a></code> element ancestor of the element
+ defining the hyperlink, if there is one, or of the page as a whole,
+ otherwise.</p>
+
+ <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></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> URL giving the e-mail address of the
+ author. <a href=#refsMAILTO>[MAILTO]</a></p>
+
+ <div class=impl>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and
+ <code><a href=#the-area-element>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=#link-type-author>author</a></code> keyword specified as a link
+ relationship.</p>
+
+ </div>
+
+
+ <h5 id=link-type-bookmark><span class=secno>4.12.3.4 </span>Link type "<dfn title=rel-bookmark><code>bookmark</code></dfn>"</h5>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword gives a
+ permalink for the nearest ancestor <code><a href=#the-article-element>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=#the-article-element>article</a></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>
+
+<!-- (commented out on the assumption that rel=contact is really XFN)
+ <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
+ author of the nearest <code>article</code> element ancestor of the
+ element defining the hyperlink, if there is one, or of the page as a
+ whole, otherwise.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+ <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 id=link-type-external><span class=secno>4.12.3.5 </span>Link type "<dfn title=rel-external><code>external</code></dfn>"</h5>
+
+ <p>The <code title=rel-external><a href=#link-type-external>external</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-external><a href=#link-type-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.</p>
+
+
+ <h5 id=link-type-help><span class=secno>4.12.3.6 </span>Link type "<dfn title=rel-help><code>help</code></dfn>"</h5>
+
+ <p>The <code title=rel-help><a href=#link-type-help>help</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-help><a href=#link-type-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.</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><a href=#the-link-element>link</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
+ document provides help for the page as a whole.</p>
+
+
+ <h5 id=rel-icon><span class=secno>4.12.3.7 </span>Link type "<dfn title=rel-icon><code>icon</code></dfn>"</h5>
+
+ <p>The <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <div class=impl>
+
+ <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>
+
+ </div>
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of
+ icons. <span class=impl>If multiple icons are provided, the user
+ agent must select the most appropriate icon according to the <code title=attr-link-type><a href=#attr-link-type>type</a></code>, <code title=attr-link-media><a href=#attr-link-media>media</a></code>, and <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attributes. If there are
+ multiple equally appropriate icons, user agents must use the last
+ one declared in <a href=#tree-order>tree order</a>. If the user agent tries to
+ use an icon but that icon is determined, upon closer examination, to
+ in fact be inappropriate (e.g. because it uses an unsupported
+ format), then the user agent must try the next-most-appropriate icon
+ as determined by the attributes.</span></p>
+
+ <div class=impl>
+
+ <p>There is no default type for resources given by the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword. However, for the purposes of
+ <a href=#concept-link-type-sniffing>determining the type of the
+ resource</a>, user agents must expect the resource to be an image.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes title=attr-link-sizes><code>sizes</code></dfn>
+ attribute gives the sizes of icons for visual media.</p>
+
+ <p>If specified, the attribute must have a value that is an
+ <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a>. The
+ values must all be either <code title=attr-link-sizes-any><a href=#attr-link-sizes-any>any</a></code> or a value that consists of
+ two <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
+ integers</a> that do not have a leading U+0030 DIGIT ZERO (0)
+ character and that are separated by a single U+0078 LATIN SMALL
+ LETTER X character (x).</p>
+
+ <p>The keywords represent icon sizes.</p>
+
+ <div class=impl>
+
+ <p>To parse and process the attribute's value, the user agent must
+ first <a href=#split-a-string-on-spaces title="split a string on spaces">split the attribute's
+ value on spaces</a>, and must then parse each resulting keyword
+ to determine what it represents.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes-any title=attr-link-sizes-any><code>any</code></dfn> keyword
+ represents that the resource contains a scalable icon, e.g. as
+ provided by an SVG image.</p>
+
+ <div class=impl>
+
+ <p>Other keywords must be further parsed as follows to determine
+ what they represent:</p>
+
+ <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
+ SMALL LETTER X character (x), then this keyword doesn't represent
+ anything. Abort these steps for that keyword.</li>
+
+ <li><p>Let <var title="">width string</var> be the string before
+ the "<code title="">x</code>".</li>
+
+ <li><p>Let <var title="">height string</var> be the string after the
+ "<code title="">x</code>".</li>
+
+ <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
+ character or contain any characters other than characters in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+ keyword doesn't represent anything. Abort these steps for that
+ keyword.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</li>
+
+ <li><p>The keyword represents that the resource contains a bitmap
+ icon with a width of <var title="">width</var> device pixels and a
+ height of <var title="">height</var> device pixels.</li>
+
+ </ul></div>
+
+ <p>The keywords specified on the <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute must not represent
+ icon sizes that are not actually available in the linked
+ resource.</p>
+
+ <div class=impl>
+
+ <p>If the attribute is not specified, then the user agent must
+ assume that the given icon is appropriate, but less appropriate than
+ an icon of a known and appropriate size.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following snippet shows the top part of an application with
+ several icons.</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>lsForums — Inbox</title>
+ <link rel=icon href=favicon.png sizes="16x16" type="image/png">
+ <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
+ <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
+ <link rel=icon href=iphone.png sizes="59x60" type="image/png">
+ <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
+ <link rel=stylesheet href=lsforums.css>
+ <script src=lsforums.js></script>
+ <meta name=application-name content="lsForums">
+ </head>
+ <body>
+ ...</pre>
+
+ </div>
+
+
+ <h5 id=link-type-license><span class=secno>4.12.3.8 </span>Link type "<dfn title=rel-license><code>license</code></dfn>"</h5>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword indicates
+ that the referenced document provides the copyright license terms
+ under which the main content of the current document is
+ provided.</p>
+
+ <p>This specification does not specify how to distinguish between
+ the main content of a document and content that is not deemed to be
+ part of that main content. The distinction should be made clear to
+ the user.</p>
+
+ <div class=example>
+
+ <p>Consider a photo sharing site. A page on that site might
+ describe and show a photograph, and the page might be marked up as
+ follows:</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Exampl Pictures: Kissat</title>
+ <link rel="stylesheet" href="/style/default">
+ </head>
+ <body>
+ <h1>Kissat</h1>
+ <nav>
+ <a href="../">Return to photo index</a>
+ </nav>
+ <figure>
+ <img src="/pix/39627052_fd8dcd98b5.jpg">
+ <figcaption>Kissat</figcaption>
+ </figure>
+ <p>One of them has six toes!</p>
+ <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
+ <footer>
+ <a href="/">Home</a> | <a href="../">Photo index</a>
+ <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
+ </footer>
+ </body>
+</html></pre>
+
+ <p>In this case the <code title=rel-license><a href=#link-type-license>license</a></code>
+ applies to just the photo (the main content of the document), not
+ the whole document. In particular not the design of the page
+ itself, which is covered by the copyright given at the bottom of
+ the document. This could be made clearer in the styling
+ (e.g. making the license link prominently positioned near the
+ photograph, while having the page copyright in light small text at
+ the foot of the page.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <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=#link-type-license>license</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=link-type-nofollow><span class=secno>4.12.3.9 </span>Link type "<dfn title=rel-nofollow><code>nofollow</code></dfn>"</h5>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword indicates
+ that the link is not endorsed by the original author or publisher of
+ the page, or that the link to the referenced document was included
+ primarily because of a commercial relationship between people
+ affiliated with the two pages.</p>
+
+
+ <h5 id=link-type-noreferrer><span class=secno>4.12.3.10 </span>Link type "<dfn title=rel-noreferrer><code>noreferrer</code></dfn>"</h5>
+
+ <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>It indicates that no referrer information is to be leaked when
+ following the link.</p>
+
+ <div class=impl>
+
+ <p>If a user agent follows a link defined by an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword, the user agent
+ must not include a <code title=http-referer>Referer</code> (sic)
+ HTTP header (<a href=#concept-http-equivalent-headers title=concept-http-equivalent-headers>or
+ equivalent</a> for other protocols) in the request.</p>
+
+ <p>This keyword also <a href=#noopener>causes the <code title=dom-opener>opener</code> attribute to remain null</a> if the
+ hyperlink creates a new <a href=#browsing-context>browsing context</a>.</p>
+
+ </div>
+
+ <!-- v2: Would be nice to apply this to other elements too,
+ e.g. letting <img> or CSS or <video> hide the referrer -->
+
+
+ <h5 id=link-type-pingback><span class=secno>4.12.3.11 </span>Link type "<dfn title=rel-pingback><code>pingback</code></dfn>"</h5>
+
+ <p>The <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <p>For the semantics of the <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword, see the Pingback 1.0
+ specification. <a href=#refsPINGBACK>[PINGBACK]</a></p>
+
+
+ <h5 id=link-type-prefetch><span class=secno>4.12.3.12 </span>Link type "<dfn title=rel-prefetch><code>prefetch</code></dfn>"</h5>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-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.</p>
+
+ <p>There is no default type for resources given by the <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword.</p>
+
+
+ <h5 id=link-type-search><span class=secno>4.12.3.13 </span>Link type "<dfn title=rel-search><code>search</code></dfn>"</h5>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></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><a href=#the-link-element>link</a></code> elements and the <code title=rel-search><a href=#link-type-search>search</a></code> link type to enable user agents to
+ autodiscover search interfaces. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
+
+
+ <h5 id=link-type-stylesheet><span class=secno>4.12.3.14 </span>Link type "<dfn title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
+
+ <p>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a> that
+ contributes to the <a href=#styling>styling processing model</a>.</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><a href=#link-type-alternate>alternate</a></code> keyword is
+ also specified on the <code><a href=#the-link-element>link</a></code> element, then <dfn id=the-link-is-an-alternative-stylesheet>the link
+ is an alternative stylesheet</dfn>; in this case, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute must be specified on the
+ <code><a href=#the-link-element>link</a></code> element, with a non-empty value.</p>
+
+ <p>The default type for resources given by the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
+
+ <div class=impl>
+
+ <p><strong>Quirk</strong>: If the document has been set to
+ <a href=#quirks-mode>quirks mode</a> and the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the external
+ resource is not a supported style sheet type, the user agent must
+ instead assume it to be <code title="">text/css</code>.</p>
+
+ </div>
+
+
+ <h5 id=link-type-sidebar><span class=secno>4.12.3.15 </span>Link type "<dfn title=rel-sidebar><code>sidebar</code></dfn>"</h5>
+
+ <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword indicates
+ that the referenced document, if retrieved, is intended to be shown
+ in a <a href=#secondary-browsing-context>secondary browsing context</a> (if possible), instead
+ of in the current <a href=#browsing-context>browsing context</a>.</p>
+
+ <p>A <a href=#hyperlink title=hyperlink>hyperlink element</a> with the <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword specified is a <dfn id=rel-sidebar-hyperlink title=rel-sidebar-hyperlink>sidebar hyperlink</dfn>.</p>
+
+
+ <h5 id=link-type-tag><span class=secno>4.12.3.16 </span>Link type "<dfn title=rel-tag><code>tag</code></dfn>"</h5>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword indicates that the
+ <em>tag</em> that the referenced document represents applies to the
+ current document.</p>
+
+ <p class=note>Since it indicates that the tag <em>applies to the
+ current document</em>, it would be inappropriate to use this keyword
+ in the markup of a <a href=#tag-cloud>tag cloud</a>, which lists
+ the popular tag across a set of pages.</p>
+
+
+ <h5 id=hierarchical-link-types><span class=secno>4.12.3.17 </span>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. The document of which a document is a
+ subdocument is said to be the document's <em>parent</em>. A document
+ with no parent forms the top of the hierarchy.</p>
+
+ <p>A document may be part of multiple hierarchies.</p>
+
+
+ <h6 id=link-type-index><span class=secno>4.12.3.17.1 </span>Link type "<dfn title=rel-index><code>index</code></dfn>"</h6>
+
+ <p>The <code title=rel-index><a href=#link-type-index>index</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-index><a href=#link-type-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. It
+ conveys more information when used with the <code title=rel-up><a href=#link-type-up>up</a></code> keyword (q.v.).</p>
+
+ <div class=impl>
+
+ <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=#link-type-index>index</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-up><span class=secno>4.12.3.17.2 </span>Link type "<dfn title=rel-up><code>up</code></dfn>"</h6>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword indicates that the
+ document is part of a hierarchical structure, and that the link is
+ leading to a document that is an ancestor of the current
+ document.</p>
+
+ <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be repeated within
+ a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute to indicate
+ the hierarchical distance from the current document to the
+ referenced document. If it occurs only once, then the link is
+ leading to the current document's parent; each additional occurrence
+ of the keyword represents one further level. If the <code title=rel-index><a href=#link-type-index>index</a></code> keyword is also present, then the
+ number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords is the depth of
+ the current page relative to the top of the hierarchy. Only one link
+ is created for the set of one or more <code title=rel-up><a href=#link-type-up>up</a></code>
+ keywords and, if present, the <code title=rel-index><a href=#link-type-index>index</a></code>
+ keyword.</p>
+
+ <p>If the page is part of multiple hierarchies, then they should be
+ described in different <a href=#paragraph title=paragraph>paragraphs</a>. <span class=impl>User agents
+ must scope any interpretation of the <code title=rel-up><a href=#link-type-up>up</a></code>
+ and <code title=rel-index><a href=#link-type-index>index</a></code> keywords together
+ indicating the depth of the hierarchy to the <a href=#paragraph>paragraph</a>
+ in which the link finds itself, if any, or to the document
+ otherwise.</span></p>
+
+ <div class=impl>
+
+ <p>When two links have both the <code title=rel-up><a href=#link-type-up>up</a></code> and
+ <code title=rel-index><a href=#link-type-index>index</a></code> keywords specified together in
+ the same scope and contradict each other by having a different
+ number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords, the link with the
+ greater number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords must be
+ taken as giving the depth of the document.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This can be used to mark up a navigation style sometimes known
+ as bread crumbs. In the following example, the current page can be
+ reached via two paths.</p>
+
+ <pre><nav>
+ <p>
+ <a href="/" rel="index up up up">Main</a> >
+ <a href="/products/" rel="up up">Products</a> >
+ <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
+ <a>Second hand</a>
+ </p>
+ <p>
+ <a href="/" rel="index up up">Main</a> >
+ <a href="/second-hand/" rel="up">Second hand</a> >
+ <a>Dishwashers</a>
+ </p>
+</nav></pre>
+
+ </div>
+
+ <p class=note>The <code title=dom-a-relList><a href=#dom-a-rellist>relList</a></code> IDL
+ attribute (e.g. on the <code><a href=#the-a-element>a</a></code> element) does not currently
+ represent multiple <code title=rel-up><a href=#link-type-up>up</a></code> keywords (the
+ interface hides duplicates).</p>
+
+
+ <h5 id=sequential-link-types><span class=secno>4.12.3.18 </span>Sequential link types</h5>
+
+ <p>Some documents form part of a sequence of documents.</p>
+
+ <p>A sequence of documents is one where each document can have a
+ <em>previous sibling</em> and a <em>next sibling</em>. A document
+ with no previous sibling is the start of its sequence, a document
+ with no next sibling is the end of its sequence.</p>
+
+ <p>A document may be part of multiple sequences.</p>
+
+
+ <h6 id=link-type-first><span class=secno>4.12.3.18.1 </span>Link type "<dfn title=rel-first><code>first</code></dfn>"</h6>
+
+ <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword indicates that
+ the document is part of a sequence, and that the link is leading to
+ the document that is the first logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-first>first</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-last><span class=secno>4.12.3.18.2 </span>Link type "<dfn title=rel-last><code>last</code></dfn>"</h6>
+
+ <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the last logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-last>last</a></code> keyword.</p>
+
+ </div>
+
+
+ <h6 id=link-type-next><span class=secno>4.12.3.18.3 </span>Link type "<dfn title=rel-next><code>next</code></dfn>"</h6>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the next logical document in the sequence.</p>
+
+
+ <h6 id=link-type-prev><span class=secno>4.12.3.18.4 </span>Link type "<dfn title=rel-prev><code>prev</code></dfn>"</h6>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the previous logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <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=#link-type-prev>prev</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=other-link-types><span class=secno>4.12.3.19 </span>Other link types</h5>
+
+ <p><dfn id=concept-rel-extensions title=concept-rel-extensions>Extensions to the predefined
+ set of link types</dfn> may be registered in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
+ RelExtensions page</a>. <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>
+
+ <p>If the value contains a U+003A COLON character (:), it must
+ also be an <a href=#absolute-url>absolute URL</a>.</p>
+
+ </dd>
+
+
+ <dt>Effect on... <code><a href=#the-link-element>link</a></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 href=#the-link-element>link</a></code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink
+ link</a>.</dd>
+
+ <dt>External Resource</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates a <a href=#external-resource-link title="external resource link">external
+ resource link</a>.</dd>
+
+ </dl></dd>
+
+
+ <dt>Effect on... <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></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 href=#the-a-element>a</a></code>
+ and <code><a href=#the-area-element>area</a></code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements.</dd>
+
+ </dl></dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of what the keyword's
+ meaning is.</dd>
+
+
+ <dt>Specification</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.</dd>
+
+
+ <dt>Synonyms</dt>
+
+ <dd><p>A list of other keyword values that have exactly the same
+ processing requirements. Authors should not use the values defined
+ to be synonyms, they are only intended to allow user agents to
+ support legacy content. Anyone may remove synonyms that are not
+ used in practice; only names that need to be processed as synonyms
+ for compatibility with legacy content are to be registered in this
+ way.</dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Proposed</dt>
+
+ <dd>The keyword has not received wide peer review and
+ approval. Someone has proposed it and is, or soon will be, using
+ it.</dd>
+
+ <dt>Ratified</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 it in
+ incorrect ways.</dd>
+
+ <dt>Discontinued</dt>
+
+ <dd>The keyword has received wide peer review and it has been
+ found wanting. Existing pages are using this keyword, but new
+ pages should avoid it. The "brief description" and
+ "specification" entries will give details of what authors should
+ use instead, if anything.</dd>
+
+ </dl><p>If a keyword is found to be redundant with existing values, it
+ should be removed and listed as a synonym for the existing
+ value.</p>
+
+ <p>If a keyword is registered in the "proposed" state for a
+ period of a month or more without being used or specified, then it
+ may be removed from the registry.</p>
+
+ <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
+ changed to "discontinued" status.</p>
+
+ <p>Anyone can change the status at any time, but should only do so
+ in accordance with the definitions above.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki RelExtensions page to establish if a value is allowed or not:
+ values defined in this specification or marked as "proposed" or
+ "ratified" must be accepted when used on the elements for which they
+ apply as described in the "Effect on..." field, whereas values
+ marked as "discontinued" or not listed in either this specification
+ or on the aforementioned page must be rejected as invalid.
+ Conformance checkers may cache this information (e.g. for
+ performance reasons or to avoid the use of unreliable network
+ connectivity).</p>
+
+ <p>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 "proposed" status.</p>
+
+ </div>
+
+ <p>Types defined as extensions in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
+ RelExtensions page</a> with the status "proposed" or "ratified" may
+ be used with the <code title="">rel</code> attribute on
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code> elements in
+ accordance to the "Effect on..." field. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
+
+
+ <h3 id=common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</h3>
+
+ <h4 id=tag-clouds><span class=secno>4.13.1 </span>Tag clouds</h4>
+
<p id=tag-cloud>This specification does not define any markup
specifically for marking up lists of keywords that apply to a group
of pages (also known as <i>tag clouds</i>). In general, authors are
@@ -44408,7 +45741,7 @@
</div>
- <h4 id=conversations><span class=secno>4.12.2 </span>Conversations</h4>
+ <h4 id=conversations><span class=secno>4.13.2 </span>Conversations</h4>
<!-- http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-September/022576.html -->
@@ -44454,7 +45787,7 @@
</div>
- <h4 id=footnotes><span class=secno>4.12.3 </span>Footnotes</h4>
+ <h4 id=footnotes><span class=secno>4.13.3 </span>Footnotes</h4>
<p>HTML does not have a dedicated mechanism for marking up
footnotes. Here are the recommended alternatives.</p>
@@ -44567,9 +45900,9 @@
<div class=impl>
- <h3 id=matching-html-elements-using-selectors><span class=secno>4.13 </span>Matching HTML elements using selectors</h3>
+ <h3 id=matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</h3>
- <h4 id=selectors><span class=secno>4.13.1 </span>Case-sensitivity</h4>
+ <h4 id=selectors><span class=secno>4.14.1 </span>Case-sensitivity</h4>
<p>Attribute and element <em>names</em> of <a href=#html-elements>HTML
elements</a> in <a href=#html-documents>HTML documents</a> must be treated as
@@ -44637,7 +45970,7 @@
treated as <a href=#case-sensitive>case-sensitive</a>.</p>
- <h4 id=pseudo-classes><span class=secno>4.13.2 </span>Pseudo-classes</h4>
+ <h4 id=pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</h4>
<p>There are a number of dynamic selectors that can be used with
HTML. This section defines when these selectors match HTML
@@ -57752,1340 +59085,8 @@
- <h3 id=links><span class=secno>6.12 </span>Links</h3>
- <h4 id=hyperlink-elements><span class=secno>6.12.1 </span>Hyperlink elements</h4>
-
- <p>The <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, and <code><a href=#the-link-element>link</a></code>
- elements can, in certain situations described in the definitions of
- those elements, represent <dfn id=hyperlink title=hyperlink>hyperlinks</dfn>.</p>
-
- <p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
- attribute on a hyperlink element must have a value that is a
- <a href=#valid-url>valid URL</a>. This URL is the <em>destination
- resource</em> of the hyperlink.</p>
-
- <div class=note>
-
- <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute on
- <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not required; when
- those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
- represent hyperlinks.</p>
-
- <p>The <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute on the
- <code><a href=#the-link-element>link</a></code> element <em>is</em> required, but whether a
- <code><a href=#the-link-element>link</a></code> element represents a hyperlink or not depends on
- the value of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
- of that element.</p>
-
- </div>
-
- <p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
- attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
- or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
- context</a> that will be used. <span class=impl>User agents use
- this name when <a href=#following-hyperlinks>following hyperlinks</a>.</span></p>
-
- <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
- present, gives the URLs of the resources that are interested in
- being notified if the user follows the hyperlink. The value must be
- a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be a
- <a href=#valid-url title="valid URL">valid URL</a>. <span class=impl>The
- value is used by the user agent for <a href=#hyperlink-auditing>hyperlink
- auditing</a>.</span></p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>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=attr-hyperlink-rel title=attr-hyperlink-rel><code>rel</code></dfn> attribute, which
- must be a <a href=#set-of-space-separated-tokens>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=#attr-hyperlink-rel>rel</a></code> attribute has
- no default value. If the attribute is omitted or if none of the
- values in the attribute are recognized by the user agent, then the
- document has no particular relationship with the destination
- resource other than there being a hyperlink between the two.</p>
-
- <p>The <dfn id=attr-hyperlink-media 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 <a href=#valid-media-query>valid
- media query</a>. The default, if the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code> attribute is omitted, is
- "<code title="">all</code>".</p>
-
- <p>The <dfn id=attr-hyperlink-hreflang 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 BCP 47 language code. <a href=#refsBCP47>[BCP47]</a>
- <span class=impl>User agents must not consider this attribute
- authoritative — upon fetching the resource, user agents must
- use only language information associated with the resource to
- determine its language, not metadata included in the link to the
- resource.</span></p>
-
- <p>The <dfn id=attr-hyperlink-type title=attr-hyperlink-type><code>type</code></dfn>
- attribute, if present, gives the <a href=#mime-type>MIME type</a> of the
- linked resource. It is purely advisory. The value must be a
- <a href=#valid-mime-type>valid MIME type</a>. <span class=impl>User agents must
- not consider the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>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.</span></p>
-
-
- <div class=impl>
-
- <h4 id=following-hyperlinks><span class=secno>6.12.2 </span><dfn>Following hyperlinks</dfn></h4>
-
- <p>When a user <em>follows a hyperlink</em>, the user agent must
- <a href=#resolve-a-url title="resolve a url">resolve</a> the <a href=#url>URL</a>
- given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute
- of that hyperlink, relative to the hyperlink element, and if that is
- successful, must <a href=#navigate>navigate</a> a <a href=#browsing-context>browsing
- context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
- case of server-side image maps, the URL of the hyperlink must
- further have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it.</p>
-
- <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
- <a href=#url>URL</a> fails, the user agent may report the error to the
- user in a user-agent-specific manner, may navigate to an error page
- to report the error, or may ignore the error and do nothing.</p>
-
- <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
- 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 <a href=#browsing-context>browsing context</a> that is
- navigated.</p>
-
- <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element that has a <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, then the
- <a href=#browsing-context>browsing context</a> that is navigated must be chosen by
- applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
- browsing context name</a>, using the value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute as the
- browsing context name. If these rules result in the creation of a
- new <a href=#browsing-context>browsing context</a>, it must be navigated with
- <a href=#replacement-enabled>replacement enabled</a>.</p>
-
- <p>Otherwise, if the hyperlink element is a <a href=#rel-sidebar-hyperlink 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>
-
- <p>Otherwise, if the hyperlink element is an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but one of
- the child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
- <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the browsing
- context that is navigated must be chosen by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
- for choosing a browsing context given a browsing context name</a>,
- using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code>
- attribute of the first such <code><a href=#the-base-element>base</a></code> element as the
- browsing context name. If these rules result in the creation of a
- new <a href=#browsing-context>browsing context</a>, it must be navigated with
- <a href=#replacement-enabled>replacement enabled</a>.</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>
-
- <p>The navigation must be done with the <a href=#browsing-context>browsing
- context</a> that contains the <code>Document</code> object with
- which the hyperlink's element in question is associated as the
- <a href=#source-browsing-context>source browsing context</a>.</p>
-
-
- <h5 id=hyperlink-auditing><span class=secno>6.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5>
-
- <p>If an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>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, and the hyperlink's <a href=#url>URL</a> can
- be <a href=#resolve-a-url title="resolve a url">resolved</a>, relative to the
- hyperlink element, without failure, then the user agent must take
- the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute's value,
- <a href=#split-a-string-on-spaces title="split a string on spaces">split that string on
- spaces</a>, <a href=#resolve-a-url title="resolve a url">resolve</a> each
- resulting token relative to the hyperlink element, and then should
- send a request (as described below) to each of the resulting <a href=#absolute-url title="absolute URL">absolute URLs</a>. (Tokens that fail to
- resolve are ignored.) 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 behavior, for
- example in conjunction with a setting that disables the sending of
- HTTP <code title=http-referer>Referer</code> (sic) headers. Based
- on the user's preferences, UAs may either <a href=#ignore>ignore</a> the
- <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute altogether,
- or selectively ignore URLs in the list (e.g. ignoring any
- third-party URLs).</p>
-
- <p>For URLs that are HTTP URLs, the requests must be performed by
- <a href=#fetch title=fetch>fetching</a> the specified URLs using the
- POST method, with an entity body with the <a href=#mime-type>MIME type</a>
- <code><a href=#text/ping>text/ping</a></code> consisting of the four-character string
- "<code title="">PING</code>", from the <a href=#origin>origin</a> of the
- <code>Document</code> containing the <a href=#hyperlink>hyperlink</a>. <!--
- not http-origin privacy sensitive --> All relevant cookie and HTTP
- authentication headers must be included in the request. Which other
- headers are required depends on the URLs involved.</p>
-
- <dl class=switch><dt>If both the <a href="#the-document's-address" title="the document's address">address</a>
- of the <code>Document</code> object containing the hyperlink being
- audited and the ping URL have the <a href=#same-origin>same origin</a></dt>
-
- <dd>The request must include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with, as its
- value, the <a href="#the-document's-address" title="the document's address">address</a> of
- the document containing the hyperlink, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the <a href=#absolute-url>absolute URL</a> of the target of the
- hyperlink. The request must not include a <code title=http-referer>Referer</code> (sic) HTTP header. <!-- because
- otherwise it would look like a trustable same-origin POST --></dd>
-
- <dt>Otherwise, if the origins are different, but the document
- containing the hyperlink being audited was not retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code title=http-referer>Referer</code> (sic) HTTP header [sic] with,
- as its value, the <a href="#the-document's-current-address" title="the document's current
- address">current address</a> of the document containing the
- hyperlink, a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP
- header with the same value, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the target of the hyperlink.</dd>
-
- <dt>Otherwise, the origins are different and the document
- containing the hyperlink being audited was retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
- the address of the target of the hyperlink. The request must
- neither include a <code title=http-referer>Referer</code> (sic)
- HTTP header nor include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header.</dd>
-
- </dl><p class=note>To save bandwidth, implementors might also wish to
- consider omitting optional headers such as <code>Accept</code> from
- these requests.</p>
-
- <p>User agents must, unless otherwise specified by the user, honor
- the HTTP headers (including, in particular, redirects and HTTP
- cookie headers), but must ignore any entity bodies returned in the
- responses. User agents may close the connection prematurely once
- they start receiving an entity body. <a href=#refsCOOKIES>[COOKIES]</a></p>
-
- <p>For URLs that are not HTTP URLs, the requests must be performed
- by <a href=#fetch title=fetch>fetching</a> the specified URL normally,
- and discarding the results.</p>
-
- <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
- URLs.</p>
-
- <p class=example>For example, a visual user agent could include
- the hostnames of the target ping URLs along with the hyperlink's
- actual URL in a status bar or tooltip.</p>
-
- </div>
-
- <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 URL
- unobscured.</li>
-
- <li>It allows the UA to inform the user about the out-of-band
- notifications.</li>
-
- <li>It allows the user to disable the notifications without losing
- the underlying link functionality.</li>
-
- <li>It allows the UA to optimize 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><a href=#ping>ping</a></code> attribute so that the user
- agent can make the user experience more transparent.</p>
-
- </div>
-
- <!-- resolving ping urls happens at audit time, so base URL changes
- affect the values of ping attributes -->
-
-
-
- <h4 id=linkTypes><span class=secno>6.12.3 </span>Link types</h4>
-
- <p>The following table summarizes 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 <i>referenced document</i> refers to
- the resource identified by the element representing the link, and
- the term <i>current document</i> refers to the resource within
- which the element representing the link finds itself.</p>
-
- <div class=impl>
-
- <p>To determine which link types apply to a <code><a href=#the-link-element>link</a></code>,
- <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code> element, the element's <code title="">rel</code> attribute must be <a href=#split-a-string-on-spaces title="split a string on
- spaces">split on spaces</a>. The resulting tokens are the link
- types that apply to that element.</p>
-
- </div>
-
- <p>Except where otherwise specified, a keyword must not be specified
- more than once per <code title=attr-rel-hyperlink>rel</code>
- attribute.</p>
-
- <p>The link types that contain no U+003A COLON characters (:),
- including all those defined in this specification, are <a href=#ascii-case-insensitive>ASCII
- case-insensitive</a> values<span class=impl>, and must be
- compared as such</span>.</p>
-
- <p class=example>Thus, <code title="">rel="next"</code> is the
- same as <code title="">rel="NEXT"</code>.</p>
-
- <table><thead><tr><th rowspan=2>Link type</th>
- <th colspan=2>Effect on...</th>
- <th rowspan=2>Brief description</th>
- <tr><th><code><a href=#the-link-element>link</a></code></th>
- <th><code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></th>
- <tbody><tr><td><code title=rel-alternate><a href=#link-type-alternate>alternate</a></code></td> <!-- second most used <link rel> value -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives alternate representations of the current document.</td>
- <tr><td><code title=rel-archives><a href=#link-type-archives>archives</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to a collection of records, documents, or other materials of historical interest.</td>
- <tr><td><code title=rel-author><a href=#link-type-author>author</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to the current document's author.</td>
- <tr><td><code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code></td> <!-- fourth most used <a rel> value -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives the permalink for the nearest ancestor section.</td>
- </tr><!-- (commented out on the assumption that rel=contact is really XFN)
- <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><a href=#link-type-external>external</a></code></td> <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the referenced document is not part of the same site as the current document.</td>
- <tr><td><code title=rel-first><a href=#link-type-first>first</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-help><a href=#link-type-help>help</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to context-sensitive help.</td>
- <tr><td><code title=rel-icon><a href=#rel-icon>icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Imports an icon to represent the current document.</td>
- <tr><td><code title=rel-index><a href=#link-type-index>index</a></code></td> <!-- used more than "top" and "contents" on <link> (though on <a>, "contents" wins) -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to the document that provides a table of contents or index listing the current document.</td>
- <tr><td><code title=rel-last><a href=#link-type-last>last</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-license><a href=#link-type-license>license</a></code></td> <!-- seventh most used <a rel> value -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
- <tr><td><code title=rel-next><a href=#link-type-next>next</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
- <tr><td><code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code></td>
- <td><em>not allowed</em></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Requires that the user agent not send an HTTP <code title=http-referer>Referer</code> (sic) header if the user follows the hyperlink.</td>
- <tr><td><code title=rel-pingback><a href=#link-type-pingback>pingback</a></code></td>
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
- <tr><td><code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code></td>
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Specifies that the target resource should be preemptively cached.</td>
- <tr><td><code title=rel-prev><a href=#link-type-prev>prev</a></code></td> <!-- prev is used more than previous -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-search><a href=#link-type-search>search</a></code></td> <!-- used quite a bit -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
- <tr><td><code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
- <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
- <td><em>not allowed</em></td>
- <td>Imports a stylesheet.</td>
- <tr><td><code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code></td> <!-- used quite a bit -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></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><td><code title=rel-tag><a href=#link-type-tag>tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Gives a tag (identified by the given address) that applies to the current document.</td>
- <tr><td><code title=rel-up><a href=#link-type-up>up</a></code></td>
- <td><a href=#hyperlink-link title="hyperlink link">Hyperlink</a></td>
- <td><a href=#hyperlink>Hyperlink</a></td>
- <td>Provides a link to a document giving the context for the current document.</td>
- </table><div class=impl>
-
- <p>Some of the types described below list synonyms for these
- values. These <!--<span class="impl">-->are to be handled as
- specified by user agents, but<!--</span>--> must not be used in
- documents.</p>
-
- </div>
-
- <!-- v2 ideas:
- * rel="script"
- * rel="related" // see also
- * http://microformats.org/wiki/rel-enclosure
- -->
-
-
- <h5 id=link-type-alternate><span class=secno>6.12.3.1 </span>Link type "<dfn title=rel-alternate><code>alternate</code></dfn>"</h5>
-
- <p>The <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, if the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute does not also contain the
- keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, it creates a
- <a href=#hyperlink-link title="hyperlink link">hyperlink</a>; but if it
- <em>does</em> also contain the keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>, the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword instead modifies the
- meaning of the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></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><a href=#link-type-alternate>alternate</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes.</p>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>
- attribute, it indicates that the referenced document is intended for
- use with the media specified.</p>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>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>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></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><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes can be combined
- when specified with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></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>
-
- <div class=impl>
-
- <p>If the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword is
- used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
- attribute set to the value <code title="">application/rss+xml</code>
- or the value <code title="">application/atom+xml</code>, then it
- indicates that the referenced document is a syndication feed (though
- not necessarily syndicating exactly the same content as the current
- page).</p>
-
- <div class=impl>
-
- <p>The first <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code>
- element in the document (in tree order) with the <code title=rel-alternate><a href=#link-type-alternate>alternate</a></code> keyword used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attribute set to the value
- <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
- syndication feed for the purposes of feed autodiscovery.</p>
-
- <div class=example>
- <p>The following <code><a href=#the-link-element>link</a></code> element gives the syndication
- feed for the current page:</p>
- <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
- <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
- <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
-</ul></pre>
- </div>
-
- </div>
-
-
-
-
- </div>
-
- <p>The <code title=rel-alternate><a href=#link-type-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=#link-type-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.</p>
-
-
- <h5 id=link-type-archives><span class=secno>6.12.3.2 </span>Link type "<dfn title=rel-archives><code>archives</code></dfn>"</h5>
-
- <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-archives><a href=#link-type-archives>archives</a></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>
-
- <div class=impl>
-
- <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=#link-type-archives>archives</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=link-type-author><span class=secno>6.12.3.3 </span>Link type "<dfn title=rel-author><code>author</code></dfn>"</h5>
-
- <p>The <code title=rel-author><a href=#link-type-author>author</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
- referenced document provides further information about the author of
- the nearest <code><a href=#the-article-element>article</a></code> element ancestor of the element
- defining the hyperlink, if there is one, or of the page as a whole,
- otherwise.</p>
-
- <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></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> URL giving the e-mail address of the
- author. <a href=#refsMAILTO>[MAILTO]</a></p>
-
- <div class=impl>
-
- <p><strong>Synonyms</strong>: For historical reasons, user agents
- must also treat <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and
- <code><a href=#the-area-element>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=#link-type-author>author</a></code> keyword specified as a link
- relationship.</p>
-
- </div>
-
-
- <h5 id=link-type-bookmark><span class=secno>6.12.3.4 </span>Link type "<dfn title=rel-bookmark><code>bookmark</code></dfn>"</h5>
-
- <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword gives a
- permalink for the nearest ancestor <code><a href=#the-article-element>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=#the-article-element>article</a></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>
-
-<!-- (commented out on the assumption that rel=contact is really XFN)
- <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
- author of the nearest <code>article</code> element ancestor of the
- element defining the hyperlink, if there is one, or of the page as a
- whole, otherwise.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
- <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 id=link-type-external><span class=secno>6.12.3.5 </span>Link type "<dfn title=rel-external><code>external</code></dfn>"</h5>
-
- <p>The <code title=rel-external><a href=#link-type-external>external</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-external><a href=#link-type-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.</p>
-
-
- <h5 id=link-type-help><span class=secno>6.12.3.6 </span>Link type "<dfn title=rel-help><code>help</code></dfn>"</h5>
-
- <p>The <code title=rel-help><a href=#link-type-help>help</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-help><a href=#link-type-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.</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><a href=#the-link-element>link</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
- document provides help for the page as a whole.</p>
-
-
- <h5 id=rel-icon><span class=secno>6.12.3.7 </span>Link type "<dfn title=rel-icon><code>icon</code></dfn>"</h5>
-
- <p>The <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <div class=impl>
-
- <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>
-
- </div>
-
- <p>Icons could be auditory icons, visual icons, or other kinds of
- icons. <span class=impl>If multiple icons are provided, the user
- agent must select the most appropriate icon according to the <code title=attr-link-type><a href=#attr-link-type>type</a></code>, <code title=attr-link-media><a href=#attr-link-media>media</a></code>, and <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attributes. If there are
- multiple equally appropriate icons, user agents must use the last
- one declared in <a href=#tree-order>tree order</a>. If the user agent tries to
- use an icon but that icon is determined, upon closer examination, to
- in fact be inappropriate (e.g. because it uses an unsupported
- format), then the user agent must try the next-most-appropriate icon
- as determined by the attributes.</span></p>
-
- <div class=impl>
-
- <p>There is no default type for resources given by the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword. However, for the purposes of
- <a href=#concept-link-type-sniffing>determining the type of the
- resource</a>, user agents must expect the resource to be an image.</p>
-
- </div>
-
- <p>The <dfn id=attr-link-sizes title=attr-link-sizes><code>sizes</code></dfn>
- attribute gives the sizes of icons for visual media.</p>
-
- <p>If specified, the attribute must have a value that is an
- <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a>. The
- values must all be either <code title=attr-link-sizes-any><a href=#attr-link-sizes-any>any</a></code> or a value that consists of
- two <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
- integers</a> that do not have a leading U+0030 DIGIT ZERO (0)
- character and that are separated by a single U+0078 LATIN SMALL
- LETTER X character (x).</p>
-
- <p>The keywords represent icon sizes.</p>
-
- <div class=impl>
-
- <p>To parse and process the attribute's value, the user agent must
- first <a href=#split-a-string-on-spaces title="split a string on spaces">split the attribute's
- value on spaces</a>, and must then parse each resulting keyword
- to determine what it represents.</p>
-
- </div>
-
- <p>The <dfn id=attr-link-sizes-any title=attr-link-sizes-any><code>any</code></dfn> keyword
- represents that the resource contains a scalable icon, e.g. as
- provided by an SVG image.</p>
-
- <div class=impl>
-
- <p>Other keywords must be further parsed as follows to determine
- what they represent:</p>
-
- <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
- SMALL LETTER X character (x), then this keyword doesn't represent
- anything. Abort these steps for that keyword.</li>
-
- <li><p>Let <var title="">width string</var> be the string before
- the "<code title="">x</code>".</li>
-
- <li><p>Let <var title="">height string</var> be the string after the
- "<code title="">x</code>".</li>
-
- <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
- character or contain any characters other than characters in the
- range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
- keyword doesn't represent anything. Abort these steps for that
- keyword.</li>
-
- <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
- integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</li>
-
- <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
- integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</li>
-
- <li><p>The keyword represents that the resource contains a bitmap
- icon with a width of <var title="">width</var> device pixels and a
- height of <var title="">height</var> device pixels.</li>
-
- </ul></div>
-
- <p>The keywords specified on the <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute must not represent
- icon sizes that are not actually available in the linked
- resource.</p>
-
- <div class=impl>
-
- <p>If the attribute is not specified, then the user agent must
- assume that the given icon is appropriate, but less appropriate than
- an icon of a known and appropriate size.</p>
-
- </div>
-
- <div class=example>
-
- <p>The following snippet shows the top part of an application with
- several icons.</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>lsForums — Inbox</title>
- <link rel=icon href=favicon.png sizes="16x16" type="image/png">
- <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
- <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
- <link rel=icon href=iphone.png sizes="59x60" type="image/png">
- <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
- <link rel=stylesheet href=lsforums.css>
- <script src=lsforums.js></script>
- <meta name=application-name content="lsForums">
- </head>
- <body>
- ...</pre>
-
- </div>
-
-
- <h5 id=link-type-license><span class=secno>6.12.3.8 </span>Link type "<dfn title=rel-license><code>license</code></dfn>"</h5>
-
- <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword indicates
- that the referenced document provides the copyright license terms
- under which the main content of the current document is
- provided.</p>
-
- <p>This specification does not specify how to distinguish between
- the main content of a document and content that is not deemed to be
- part of that main content. The distinction should be made clear to
- the user.</p>
-
- <div class=example>
-
- <p>Consider a photo sharing site. A page on that site might
- describe and show a photograph, and the page might be marked up as
- follows:</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>Exampl Pictures: Kissat</title>
- <link rel="stylesheet" href="/style/default">
- </head>
- <body>
- <h1>Kissat</h1>
- <nav>
- <a href="../">Return to photo index</a>
- </nav>
- <figure>
- <img src="/pix/39627052_fd8dcd98b5.jpg">
- <figcaption>Kissat</figcaption>
- </figure>
- <p>One of them has six toes!</p>
- <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
- <footer>
- <a href="/">Home</a> | <a href="../">Photo index</a>
- <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
- </footer>
- </body>
-</html></pre>
-
- <p>In this case the <code title=rel-license><a href=#link-type-license>license</a></code>
- applies to just the photo (the main content of the document), not
- the whole document. In particular not the design of the page
- itself, which is covered by the copyright given at the bottom of
- the document. This could be made clearer in the styling
- (e.g. making the license link prominently positioned near the
- photograph, while having the page copyright in light small text at
- the foot of the page.</p>
-
- </div>
-
- <div class=impl>
-
- <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=#link-type-license>license</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=link-type-nofollow><span class=secno>6.12.3.9 </span>Link type "<dfn title=rel-nofollow><code>nofollow</code></dfn>"</h5>
-
- <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword indicates
- that the link is not endorsed by the original author or publisher of
- the page, or that the link to the referenced document was included
- primarily because of a commercial relationship between people
- affiliated with the two pages.</p>
-
-
- <h5 id=link-type-noreferrer><span class=secno>6.12.3.10 </span>Link type "<dfn title=rel-noreferrer><code>noreferrer</code></dfn>"</h5>
-
- <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword may be
- used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements.</p>
-
- <p>It indicates that no referrer information is to be leaked when
- following the link.</p>
-
- <div class=impl>
-
- <p>If a user agent follows a link defined by an <code><a href=#the-a-element>a</a></code> or
- <code><a href=#the-area-element>area</a></code> element that has the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword, the user agent
- must not include a <code title=http-referer>Referer</code> (sic)
- HTTP header (<a href=#concept-http-equivalent-headers title=concept-http-equivalent-headers>or
- equivalent</a> for other protocols) in the request.</p>
-
- <p>This keyword also <a href=#noopener>causes the <code title=dom-opener>opener</code> attribute to remain null</a> if the
- hyperlink creates a new <a href=#browsing-context>browsing context</a>.</p>
-
- </div>
-
- <!-- v2: Would be nice to apply this to other elements too,
- e.g. letting <img> or CSS or <video> hide the referrer -->
-
-
- <h5 id=link-type-pingback><span class=secno>6.12.3.11 </span>Link type "<dfn title=rel-pingback><code>pingback</code></dfn>"</h5>
-
- <p>The <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <p>For the semantics of the <code title=rel-pingback><a href=#link-type-pingback>pingback</a></code> keyword, see the Pingback 1.0
- specification. <a href=#refsPINGBACK>[PINGBACK]</a></p>
-
-
- <h5 id=link-type-prefetch><span class=secno>6.12.3.12 </span>Link type "<dfn title=rel-prefetch><code>prefetch</code></dfn>"</h5>
-
- <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
-
- <p>The <code title=rel-prefetch><a href=#link-type-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.</p>
-
- <p>There is no default type for resources given by the <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword.</p>
-
-
- <h5 id=link-type-search><span class=secno>6.12.3.13 </span>Link type "<dfn title=rel-search><code>search</code></dfn>"</h5>
-
- <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-search><a href=#link-type-search>search</a></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><a href=#the-link-element>link</a></code> elements and the <code title=rel-search><a href=#link-type-search>search</a></code> link type to enable user agents to
- autodiscover search interfaces. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
-
-
- <h5 id=link-type-stylesheet><span class=secno>6.12.3.14 </span>Link type "<dfn title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
-
- <p>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword may be
- used with <code><a href=#the-link-element>link</a></code> elements, for which it creates an <a href=#external-resource-link title="external resource link">external resource link</a> that
- contributes to the <a href=#styling>styling processing model</a>.</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><a href=#link-type-alternate>alternate</a></code> keyword is
- also specified on the <code><a href=#the-link-element>link</a></code> element, then <dfn id=the-link-is-an-alternative-stylesheet>the link
- is an alternative stylesheet</dfn>; in this case, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute must be specified on the
- <code><a href=#the-link-element>link</a></code> element, with a non-empty value.</p>
-
- <p>The default type for resources given by the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
-
- <div class=impl>
-
- <p><strong>Quirk</strong>: If the document has been set to
- <a href=#quirks-mode>quirks mode</a> and the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the external
- resource is not a supported style sheet type, the user agent must
- instead assume it to be <code title="">text/css</code>.</p>
-
- </div>
-
-
- <h5 id=link-type-sidebar><span class=secno>6.12.3.15 </span>Link type "<dfn title=rel-sidebar><code>sidebar</code></dfn>"</h5>
-
- <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword indicates
- that the referenced document, if retrieved, is intended to be shown
- in a <a href=#secondary-browsing-context>secondary browsing context</a> (if possible), instead
- of in the current <a href=#browsing-context>browsing context</a>.</p>
-
- <p>A <a href=#hyperlink title=hyperlink>hyperlink element</a> with the <code title=rel-sidebar><a href=#link-type-sidebar>sidebar</a></code> keyword specified is a <dfn id=rel-sidebar-hyperlink title=rel-sidebar-hyperlink>sidebar hyperlink</dfn>.</p>
-
-
- <h5 id=link-type-tag><span class=secno>6.12.3.16 </span>Link type "<dfn title=rel-tag><code>tag</code></dfn>"</h5>
-
- <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword may be used
- with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword indicates that the
- <em>tag</em> that the referenced document represents applies to the
- current document.</p>
-
- <p class=note>Since it indicates that the tag <em>applies to the
- current document</em>, it would be inappropriate to use this keyword
- in the markup of a <a href=#tag-cloud>tag cloud</a>, which lists
- the popular tag across a set of pages.</p>
-
-
- <h5 id=hierarchical-link-types><span class=secno>6.12.3.17 </span>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. The document of which a document is a
- subdocument is said to be the document's <em>parent</em>. A document
- with no parent forms the top of the hierarchy.</p>
-
- <p>A document may be part of multiple hierarchies.</p>
-
-
- <h6 id=link-type-index><span class=secno>6.12.3.17.1 </span>Link type "<dfn title=rel-index><code>index</code></dfn>"</h6>
-
- <p>The <code title=rel-index><a href=#link-type-index>index</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-index><a href=#link-type-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. It
- conveys more information when used with the <code title=rel-up><a href=#link-type-up>up</a></code> keyword (q.v.).</p>
-
- <div class=impl>
-
- <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=#link-type-index>index</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-up><span class=secno>6.12.3.17.2 </span>Link type "<dfn title=rel-up><code>up</code></dfn>"</h6>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword indicates that the
- document is part of a hierarchical structure, and that the link is
- leading to a document that is an ancestor of the current
- document.</p>
-
- <p>The <code title=rel-up><a href=#link-type-up>up</a></code> keyword may be repeated within
- a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute to indicate
- the hierarchical distance from the current document to the
- referenced document. If it occurs only once, then the link is
- leading to the current document's parent; each additional occurrence
- of the keyword represents one further level. If the <code title=rel-index><a href=#link-type-index>index</a></code> keyword is also present, then the
- number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords is the depth of
- the current page relative to the top of the hierarchy. Only one link
- is created for the set of one or more <code title=rel-up><a href=#link-type-up>up</a></code>
- keywords and, if present, the <code title=rel-index><a href=#link-type-index>index</a></code>
- keyword.</p>
-
- <p>If the page is part of multiple hierarchies, then they should be
- described in different <a href=#paragraph title=paragraph>paragraphs</a>. <span class=impl>User agents
- must scope any interpretation of the <code title=rel-up><a href=#link-type-up>up</a></code>
- and <code title=rel-index><a href=#link-type-index>index</a></code> keywords together
- indicating the depth of the hierarchy to the <a href=#paragraph>paragraph</a>
- in which the link finds itself, if any, or to the document
- otherwise.</span></p>
-
- <div class=impl>
-
- <p>When two links have both the <code title=rel-up><a href=#link-type-up>up</a></code> and
- <code title=rel-index><a href=#link-type-index>index</a></code> keywords specified together in
- the same scope and contradict each other by having a different
- number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords, the link with the
- greater number of <code title=rel-up><a href=#link-type-up>up</a></code> keywords must be
- taken as giving the depth of the document.</p>
-
- </div>
-
- <div class=example>
-
- <p>This can be used to mark up a navigation style sometimes known
- as bread crumbs. In the following example, the current page can be
- reached via two paths.</p>
-
- <pre><nav>
- <p>
- <a href="/" rel="index up up up">Main</a> >
- <a href="/products/" rel="up up">Products</a> >
- <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
- <a>Second hand</a>
- </p>
- <p>
- <a href="/" rel="index up up">Main</a> >
- <a href="/second-hand/" rel="up">Second hand</a> >
- <a>Dishwashers</a>
- </p>
-</nav></pre>
-
- </div>
-
- <p class=note>The <code title=dom-a-relList><a href=#dom-a-rellist>relList</a></code> IDL
- attribute (e.g. on the <code><a href=#the-a-element>a</a></code> element) does not currently
- represent multiple <code title=rel-up><a href=#link-type-up>up</a></code> keywords (the
- interface hides duplicates).</p>
-
-
- <h5 id=sequential-link-types><span class=secno>6.12.3.18 </span>Sequential link types</h5>
-
- <p>Some documents form part of a sequence of documents.</p>
-
- <p>A sequence of documents is one where each document can have a
- <em>previous sibling</em> and a <em>next sibling</em>. A document
- with no previous sibling is the start of its sequence, a document
- with no next sibling is the end of its sequence.</p>
-
- <p>A document may be part of multiple sequences.</p>
-
-
- <h6 id=link-type-first><span class=secno>6.12.3.18.1 </span>Link type "<dfn title=rel-first><code>first</code></dfn>"</h6>
-
- <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-first><a href=#link-type-first>first</a></code> keyword indicates that
- the document is part of a sequence, and that the link is leading to
- the document that is the first logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-first>first</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-last><span class=secno>6.12.3.18.2 </span>Link type "<dfn title=rel-last><code>last</code></dfn>"</h6>
-
- <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-last><a href=#link-type-last>last</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the last logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-last>last</a></code> keyword.</p>
-
- </div>
-
-
- <h6 id=link-type-next><span class=secno>6.12.3.18.3 </span>Link type "<dfn title=rel-next><code>next</code></dfn>"</h6>
-
- <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the next logical document in the sequence.</p>
-
-
- <h6 id=link-type-prev><span class=secno>6.12.3.18.4 </span>Link type "<dfn title=rel-prev><code>prev</code></dfn>"</h6>
-
- <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword may be used with
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
- elements. For <code><a href=#the-link-element>link</a></code> elements, it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink</a>.</p>
-
- <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword indicates that the
- document is part of a sequence, and that the link is leading to the
- document that is the previous logical document in the sequence.</p>
-
- <div class=impl>
-
- <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=#link-type-prev>prev</a></code> keyword.</p>
-
- </div>
-
-
- <h5 id=other-link-types><span class=secno>6.12.3.19 </span>Other link types</h5>
-
- <p><dfn id=concept-rel-extensions title=concept-rel-extensions>Extensions to the predefined
- set of link types</dfn> may be registered in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
- RelExtensions page</a>. <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>
-
- <p>If the value contains a U+003A COLON character (:), it must
- also be an <a href=#absolute-url>absolute URL</a>.</p>
-
- </dd>
-
-
- <dt>Effect on... <code><a href=#the-link-element>link</a></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 href=#the-link-element>link</a></code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
- it creates a <a href=#hyperlink-link title="hyperlink link">hyperlink
- link</a>.</dd>
-
- <dt>External Resource</dt>
-
- <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
- it creates a <a href=#external-resource-link title="external resource link">external
- resource link</a>.</dd>
-
- </dl></dd>
-
-
- <dt>Effect on... <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></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 href=#the-a-element>a</a></code>
- and <code><a href=#the-area-element>area</a></code> elements.</dd>
-
- <dt>Hyperlink</dt>
-
- <dd>The keyword may be specified on <code><a href=#the-a-element>a</a></code> and
- <code><a href=#the-area-element>area</a></code> elements.</dd>
-
- </dl></dd>
-
-
- <dt>Brief description</dt>
-
- <dd><p>A short non-normative description of what the keyword's
- meaning is.</dd>
-
-
- <dt>Specification</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.</dd>
-
-
- <dt>Synonyms</dt>
-
- <dd><p>A list of other keyword values that have exactly the same
- processing requirements. Authors should not use the values defined
- to be synonyms, they are only intended to allow user agents to
- support legacy content. Anyone may remove synonyms that are not
- used in practice; only names that need to be processed as synonyms
- for compatibility with legacy content are to be registered in this
- way.</dd>
-
-
- <dt>Status</dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl><dt>Proposed</dt>
-
- <dd>The keyword has not received wide peer review and
- approval. Someone has proposed it and is, or soon will be, using
- it.</dd>
-
- <dt>Ratified</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 it in
- incorrect ways.</dd>
-
- <dt>Discontinued</dt>
-
- <dd>The keyword has received wide peer review and it has been
- found wanting. Existing pages are using this keyword, but new
- pages should avoid it. The "brief description" and
- "specification" entries will give details of what authors should
- use instead, if anything.</dd>
-
- </dl><p>If a keyword is found to be redundant with existing values, it
- should be removed and listed as a synonym for the existing
- value.</p>
-
- <p>If a keyword is registered in the "proposed" state for a
- period of a month or more without being used or specified, then it
- may be removed from the registry.</p>
-
- <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
- changed to "discontinued" status.</p>
-
- <p>Anyone can change the status at any time, but should only do so
- in accordance with the definitions above.</p>
-
- </dd>
-
- </dl><div class=impl>
-
- <p>Conformance checkers must use the information given on the WHATWG
- Wiki RelExtensions page to establish if a value is allowed or not:
- values defined in this specification or marked as "proposed" or
- "ratified" must be accepted when used on the elements for which they
- apply as described in the "Effect on..." field, whereas values
- marked as "discontinued" or not listed in either this specification
- or on the aforementioned page must be rejected as invalid.
- Conformance checkers may cache this information (e.g. for
- performance reasons or to avoid the use of unreliable network
- connectivity).</p>
-
- <p>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 "proposed" status.</p>
-
- </div>
-
- <p>Types defined as extensions in the <a href=http://wiki.whatwg.org/wiki/RelExtensions>WHATWG Wiki
- RelExtensions page</a> with the status "proposed" or "ratified" may
- be used with the <code title="">rel</code> attribute on
- <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code> elements in
- accordance to the "Effect on..." field. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
-
-
-
-
<h2 id=editing><span class=secno>7 </span><dfn>User Interaction</dfn></h2>
<p>This section describes various features that allow authors to
Modified: source
===================================================================
--- source 2010-02-05 23:09:54 UTC (rev 4665)
+++ source 2010-02-05 23:16:41 UTC (rev 4666)
@@ -49501,6 +49501,1533 @@
+
+ <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
+ <span>valid URL</span>. This URL 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
+ or keyword</span>. It gives the name of the <span>browsing
+ context</span> that will be used. <span class="impl">User agents use
+ this name when <span>following hyperlinks</span>.</span></p>
+
+ <p>The <dfn id="ping"
+ title="attr-hyperlink-ping"><code>ping</code></dfn> attribute, if
+ present, gives the URLs of the resources that are interested in
+ being notified if the user follows the hyperlink. The value must be
+ a <span>set of space-separated tokens</span>, each of which must be a
+ <span title="valid URL">valid URL</span>. <span class="impl">The
+ value is used by the user agent for <span>hyperlink
+ auditing</span>.</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 a <span>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 recognized by the user agent, 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 <span>valid
+ media query</span>. The default, if the <code
+ title="attr-hyperlink-media">media</code> attribute is omitted, is
+ "<code title="">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 BCP 47 language code. <a href="#refsBCP47">[BCP47]</a>
+ <span class="impl">User agents must not consider this attribute
+ authoritative — upon fetching the resource, user agents must
+ use only language information associated with the resource to
+ determine its language, not metadata included in the link to the
+ resource.</span></p>
+
+ <p>The <dfn title="attr-hyperlink-type"><code>type</code></dfn>
+ attribute, if present, gives the <span>MIME type</span> of the
+ linked resource. It is purely advisory. The value must be a
+ <span>valid MIME type</span>. <span class="impl">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.</span></p>
+
+
+ <div class="impl">
+
+ <h4><dfn>Following hyperlinks</dfn></h4>
+
+ <p>When a user <em>follows a hyperlink</em>, the user agent must
+ <span title="resolve a url">resolve</span> the <span>URL</span>
+ given by the <code title="attr-hyperlink-href">href</code> attribute
+ of that hyperlink, relative to the hyperlink element, and if that is
+ successful, must <span>navigate</span> a <span>browsing
+ context</span> to the resulting <span>absolute URL</span>. In the
+ case of server-side image maps, the URL of the hyperlink must
+ further have its <var>hyperlink suffix</var> appended to it.</p>
+
+ <p>If <span title="resolve a url">resolving</span> the
+ <span>URL</span> fails, the user agent may report the error to the
+ user in a user-agent-specific manner, may navigate to an error page
+ to report the error, or may ignore the error and do nothing.</p>
+
+ <p>If the user indicated a specific <span>browsing context</span>
+ 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 <span>browsing context</span> 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
+ <span>browsing context</span> that is navigated must be chosen by
+ applying <span>the rules for choosing 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 choosing 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>
+
+ <p>The navigation must be done with the <span>browsing
+ context</span> that contains the <code>Document</code> object with
+ which the hyperlink's element in question is associated as the
+ <span>source browsing context</span>.</p>
+
+
+ <h5><dfn>Hyperlink auditing</dfn></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, and the hyperlink's <span>URL</span> can
+ be <span title="resolve a url">resolved</span>, relative to the
+ hyperlink element, without failure, then the user agent must take
+ the <code title="attr-hyperlink-ping">ping</code> attribute's value,
+ <span title="split a string on spaces">split that string on
+ spaces</span>, <span title="resolve a url">resolve</span> each
+ resulting token relative to the hyperlink element, and then should
+ send a request (as described below) to each of the resulting <span
+ title="absolute URL">absolute URLs</span>. (Tokens that fail to
+ resolve are ignored.) 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 behavior, for
+ example in conjunction with a setting that disables the sending of
+ HTTP <code title="http-referer">Referer</code> (sic) 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 URLs in the list (e.g. ignoring any
+ third-party URLs).</p>
+
+ <p>For URLs that are HTTP URLs, the requests must be performed by
+ <span title="fetch">fetching</span> the specified URLs using the
+ POST method, with an entity body with the <span>MIME type</span>
+ <code>text/ping</code> consisting of the four-character string
+ "<code title="">PING</code>", from the <span>origin</span> of the
+ <code>Document</code> containing the <span>hyperlink</span>. <!--
+ not http-origin privacy sensitive --> All relevant cookie and HTTP
+ authentication headers must be included in the request. Which other
+ headers are required depends on the URLs involved.</p>
+
+ <dl class="switch">
+
+ <dt>If both the <span title="the document's address">address</span>
+ of the <code>Document</code> object containing the hyperlink being
+ audited and the ping URL have the <span>same origin</span></dt>
+
+ <dd>The request must include a <code
+ title="http-ping-from">Ping-From</code> HTTP header with, as its
+ value, the <span title="the document's address">address</span> of
+ the document containing the hyperlink, and a <code
+ title="http-ping-to">Ping-To</code> HTTP header with, as its value,
+ the address of the <span>absolute URL</span> of the target of the
+ hyperlink. The request must not include a <code
+ title="http-referer">Referer</code> (sic) HTTP header. <!-- because
+ otherwise it would look like a trustable same-origin POST --></dd>
+
+ <dt>Otherwise, if the origins are different, but the document
+ containing the hyperlink being audited was not retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code
+ title="http-referer">Referer</code> (sic) HTTP header [sic] with,
+ as its value, the <span title="the document's current
+ address">current address</span> of the document containing the
+ hyperlink, a <code title="http-ping-from">Ping-From</code> HTTP
+ header with the same value, and a <code
+ title="http-ping-to">Ping-To</code> HTTP header with, as its value,
+ the address of the target of the hyperlink.</dd>
+
+ <dt>Otherwise, the origins are different and the document
+ containing the hyperlink being audited was retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code
+ title="http-ping-to">Ping-To</code> HTTP header with, as its value,
+ the address of the target of the hyperlink. The request must
+ neither include a <code title="http-referer">Referer</code> (sic)
+ HTTP header nor include a <code
+ title="http-ping-from">Ping-From</code> HTTP header.</dd>
+
+ </dl>
+
+ <p class="note">To save bandwidth, implementors might also wish to
+ consider omitting optional headers such as <code>Accept</code> from
+ these requests.</p>
+
+ <p>User agents must, unless otherwise specified by the user, honor
+ the HTTP headers (including, in particular, redirects and HTTP
+ cookie headers), but must ignore any entity bodies returned in the
+ responses. User agents may close the connection prematurely once
+ they start receiving an entity body. <a
+ href="#refsCOOKIES">[COOKIES]</a></p>
+
+ <p>For URLs that are not HTTP URLs, the requests must be performed
+ by <span title="fetch">fetching</span> the specified URL normally,
+ and discarding the results.</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
+ URLs.</p>
+
+ <p class="example">For example, a visual user agent could include
+ the hostnames of the target ping URLs along with the hyperlink's
+ actual URL in a status bar or tooltip.</p>
+
+ </div>
+
+ <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 URL
+ unobscured.</li>
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.</li>
+
+ <li>It allows the user to disable the notifications without losing
+ the underlying link functionality.</li>
+
+ <li>It allows the UA to optimize 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 make the user experience more transparent.</p>
+
+ </div>
+
+ <!-- resolving ping urls happens at audit time, so base URL changes
+ affect the values of ping attributes -->
+
+
+
+ <h4 id="linkTypes">Link types</h4>
+
+ <p>The following table summarizes 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 <i>referenced document</i> refers to
+ the resource identified by the element representing the link, and
+ the term <i>current document</i> refers to the resource within
+ which the element representing the link finds itself.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+ <p>Except where otherwise specified, a keyword must not be specified
+ more than once per <code title="attr-rel-hyperlink">rel</code>
+ attribute.</p>
+
+ <p>The link types that contain no U+003A COLON characters (:),
+ including all those defined in this specification, are <span>ASCII
+ case-insensitive</span> values<span class="impl">, and must be
+ compared as such</span>.</p>
+
+ <p class="example">Thus, <code title="">rel="next"</code> is the
+ same as <code title="">rel="NEXT"</code>.</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>
+<!-- (commented out on the assumption that rel=contact is really XFN)
+ <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-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 main content of 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-noreferrer">noreferrer</code></td>
+ <td><em>not allowed</em></td>
+ <td><span>Hyperlink</span></td>
+ <td>Requires that the user agent not send an HTTP <code title="http-referer">Referer</code> (sic) header if the user follows the hyperlink.</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 preemptively 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>
+
+ <div class="impl">
+
+ <p>Some of the types described below list synonyms for these
+ values. These <!--<span class="impl">-->are to be handled as
+ specified by user agents, but<!--</span>--> must not be used in
+ documents.</p>
+
+ </div>
+
+ <!-- v2 ideas:
+ * rel="script"
+ * rel="related" // see also
+ * http://microformats.org/wiki/rel-enclosure
+ -->
+
+
+ <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 contain 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>
+
+ <div class="impl">
+
+ <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 it
+ indicates that the referenced document is a syndication feed (though
+ not necessarily syndicating exactly the same content as the current
+ page).</p>
+
+ <div class="impl">
+
+ <p>The first <code>link</code>, <code>a</code>, or <code>area</code>
+ element in the document (in tree order) with the <code
+ title="rel-alternate">alternate</code> keyword 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> must be treated as the default
+ syndication feed for the purposes of feed autodiscovery.</p>
+
+ <div class="example">
+ <p>The following <code>link</code> element gives the syndication
+ feed for the current page:</p>
+ <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
+ <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
+ <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
+</ul></pre>
+ </div>
+
+ </div>
+
+
+
+
+ </div>
+
+ <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>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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 nearest <code>article</code> element ancestor of the element
+ defining the hyperlink, if there is one, or of the page as a whole,
+ otherwise.</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> URL giving the e-mail address of the
+ author. <a href="#refsMAILTO">[MAILTO]</a></p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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>
+
+<!-- (commented out on the assumption that rel=contact is really XFN)
+ <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
+ author of the nearest <code>article</code> element ancestor of the
+ element defining the hyperlink, if there is one, or of the page as a
+ whole, otherwise.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+ <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-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 id=rel-icon>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>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of
+ icons. <span class="impl">If multiple icons are provided, the user
+ agent must select the most appropriate icon according to the <code
+ title="attr-link-type">type</code>, <code
+ title="attr-link-media">media</code>, and <code
+ title="attr-link-sizes">sizes</code> attributes. If there are
+ multiple equally appropriate icons, user agents must use the last
+ one declared in <span>tree order</span>. If the user agent tries to
+ use an icon but that icon is determined, upon closer examination, to
+ in fact be inappropriate (e.g. because it uses an unsupported
+ format), then the user agent must try the next-most-appropriate icon
+ as determined by the attributes.</span></p>
+
+ <div class="impl">
+
+ <p>There is no default type for resources given by the <code
+ title="rel-icon">icon</code> keyword. However, for the purposes of
+ <a href="#concept-link-type-sniffing">determining the type of the
+ resource</a>, user agents must expect the resource to be an image.</p>
+
+ </div>
+
+ <p>The <dfn title="attr-link-sizes"><code>sizes</code></dfn>
+ attribute gives the sizes of icons for visual media.</p>
+
+ <p>If specified, the attribute must have a value that is an
+ <span>unordered set of unique space-separated tokens</span>. The
+ values must all be either <code
+ title="attr-link-sizes-any">any</code> or a value that consists of
+ two <span title="valid non-negative integer">valid non-negative
+ integers</span> that do not have a leading U+0030 DIGIT ZERO (0)
+ character and that are separated by a single U+0078 LATIN SMALL
+ LETTER X character (x).</p>
+
+ <p>The keywords represent icon sizes.</p>
+
+ <div class="impl">
+
+ <p>To parse and process the attribute's value, the user agent must
+ first <span title="split a string on spaces">split the attribute's
+ value on spaces</span>, and must then parse each resulting keyword
+ to determine what it represents.</p>
+
+ </div>
+
+ <p>The <dfn title="attr-link-sizes-any"><code>any</code></dfn> keyword
+ represents that the resource contains a scalable icon, e.g. as
+ provided by an SVG image.</p>
+
+ <div class="impl">
+
+ <p>Other keywords must be further parsed as follows to determine
+ what they represent:</p>
+
+ <ul>
+
+ <li><p>If the keyword doesn't contain exactly one U+0078 LATIN
+ SMALL LETTER X character (x), then this keyword doesn't represent
+ anything. Abort these steps for that keyword.</p></li>
+
+ <li><p>Let <var title="">width string</var> be the string before
+ the "<code title="">x</code>".</p></li>
+
+ <li><p>Let <var title="">height string</var> be the string after the
+ "<code title="">x</code>".</p></li>
+
+ <li><p>If either <var title="">width string</var> or <var
+ title="">height string</var> start with a U+0030 DIGIT ZERO (0)
+ character or contain any characters other than characters in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+ keyword doesn't represent anything. Abort these steps for that
+ keyword.</p></li>
+
+ <li><p>Apply the <span>rules for parsing non-negative
+ integers</span> to <var title="">width string</var> to obtain <var
+ title="">width</var>.</p></li>
+
+ <li><p>Apply the <span>rules for parsing non-negative
+ integers</span> to <var title="">height string</var> to obtain <var
+ title="">height</var>.</p></li>
+
+ <li><p>The keyword represents that the resource contains a bitmap
+ icon with a width of <var title="">width</var> device pixels and a
+ height of <var title="">height</var> device pixels.</p></li>
+
+ </ul>
+
+ </div>
+
+ <p>The keywords specified on the <code
+ title="attr-link-sizes">sizes</code> attribute must not represent
+ icon sizes that are not actually available in the linked
+ resource.</p>
+
+ <div class="impl">
+
+ <p>If the attribute is not specified, then the user agent must
+ assume that the given icon is appropriate, but less appropriate than
+ an icon of a known and appropriate size.</p>
+
+ </div>
+
+ <div class="example">
+
+ <p>The following snippet shows the top part of an application with
+ several icons.</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>lsForums — Inbox</title>
+ <link rel=icon href=favicon.png sizes="16x16" type="image/png">
+ <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
+ <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
+ <link rel=icon href=iphone.png sizes="59x60" type="image/png">
+ <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
+ <link rel=stylesheet href=lsforums.css>
+ <script src=lsforums.js></script>
+ <meta name=application-name content="lsForums">
+ </head>
+ <body>
+ ...</pre>
+
+ </div>
+
+
+ <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 main content of the current document is
+ provided.</p>
+
+ <p>This specification does not specify how to distinguish between
+ the main content of a document and content that is not deemed to be
+ part of that main content. The distinction should be made clear to
+ the user.</p>
+
+ <div class="example">
+
+ <p>Consider a photo sharing site. A page on that site might
+ describe and show a photograph, and the page might be marked up as
+ follows:</p>
+
+ <pre><!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Exampl Pictures: Kissat</title>
+ <link rel="stylesheet" href="/style/default">
+ </head>
+ <body>
+ <h1>Kissat</h1>
+ <nav>
+ <a href="../">Return to photo index</a>
+ </nav>
+ <figure>
+ <img src="/pix/39627052_fd8dcd98b5.jpg">
+ <figcaption>Kissat</figcaption>
+ </figure>
+ <p>One of them has six toes!</p>
+ <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
+ <footer>
+ <a href="/">Home</a> | <a href="../">Photo index</a>
+ <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
+ </footer>
+ </body>
+</html></pre>
+
+ <p>In this case the <code title="rel-license">license</code>
+ applies to just the photo (the main content of the document), not
+ the whole document. In particular not the design of the page
+ itself, which is covered by the copyright given at the bottom of
+ the document. This could be made clearer in the styling
+ (e.g. making the license link prominently positioned near the
+ photograph, while having the page copyright in light small text at
+ the foot of the page.</p>
+
+ </div>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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, or that the link to the referenced document was included
+ primarily because of a commercial relationship between people
+ affiliated with the two pages.</p>
+
+
+ <h5>Link type "<dfn title="rel-noreferrer"><code>noreferrer</code></dfn>"</h5>
+
+ <p>The <code title="rel-noreferrer">noreferrer</code> keyword may be
+ used with <code>a</code> and <code>area</code> elements.</p>
+
+ <p>It indicates that no referrer information is to be leaked when
+ following the link.</p>
+
+ <div class="impl">
+
+ <p>If a user agent follows a link defined by an <code>a</code> or
+ <code>area</code> element that has the <code
+ title="rel-noreferrer">noreferrer</code> keyword, the user agent
+ must not include a <code title="http-referer">Referer</code> (sic)
+ HTTP header (<span title="concept-http-equivalent-headers">or
+ equivalent</span> for other protocols) in the request.</p>
+
+ <p>This keyword also <a href="#noopener">causes the <code
+ title="dom-opener">opener</code> attribute to remain null</a> if the
+ hyperlink creates a new <span>browsing context</span>.</p>
+
+ </div>
+
+ <!-- v2: Would be nice to apply this to other elements too,
+ e.g. letting <img> or CSS or <video> hide the referrer -->
+
+
+ <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>
+
+ <p>There is no default type for resources given by the <code
+ title="rel-prefetch">prefetch</code> keyword.</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. <a
+ href="#refsOPENSEARCH">[OPENSEARCH]</a></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 <dfn>the link
+ is an alternative stylesheet</dfn>; in this case, the <code
+ title="attr-title">title</code> attribute must be specified on the
+ <code>link</code> element, with a non-empty value.</p>
+
+ <p>The default type for resources given by the <code
+ title="rel-stylesheet">stylesheet</code> keyword is <code
+ title="">text/css</code>.</p>
+
+ <div class="impl">
+
+ <p><strong>Quirk</strong>: If the document has been set to
+ <span>quirks mode</span> and the <span
+ title="Content-Type">Content-Type metadata</span> of the external
+ resource is not a supported style sheet type, the user agent must
+ instead assume it to be <code title="">text/css</code>.</p>
+
+ </div>
+
+
+ <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 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>
+
+ <p class="note">Since it indicates that the tag <em>applies to the
+ current document</em>, it would be inappropriate to use this keyword
+ in the markup of a <a href="#tag-cloud">tag cloud</a>, which lists
+ the popular tag across a set of pages.</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. The document of which a document is a
+ subdocument is said to be the document's <em>parent</em>. A document
+ with no parent forms the top of the hierarchy.</p>
+
+ <p>A document may be part of multiple hierarchies.</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. It
+ conveys more information when used with the <code
+ title="rel-up">up</code> keyword (q.v.).</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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 a document that is an ancestor of the current
+ document.</p>
+
+ <p>The <code title="rel-up">up</code> keyword may be repeated within
+ a <code title="attr-hyperlink-rel">rel</code> attribute to indicate
+ the hierarchical distance from the current document to the
+ referenced document. If it occurs only once, then the link is
+ leading to the current document's parent; each additional occurrence
+ of the keyword represents one further level. If the <code
+ title="rel-index">index</code> keyword is also present, then the
+ number of <code title="rel-up">up</code> keywords is the depth of
+ the current page relative to the top of the hierarchy. Only one link
+ is created for the set of one or more <code title="rel-up">up</code>
+ keywords and, if present, the <code title="rel-index">index</code>
+ keyword.</p>
+
+ <p>If the page is part of multiple hierarchies, then they should be
+ described in different <span
+ title="paragraph">paragraphs</span>. <span class="impl">User agents
+ must scope any interpretation of the <code title="rel-up">up</code>
+ and <code title="rel-index">index</code> keywords together
+ indicating the depth of the hierarchy to the <span>paragraph</span>
+ in which the link finds itself, if any, or to the document
+ otherwise.</span></p>
+
+ <div class="impl">
+
+ <p>When two links have both the <code title="rel-up">up</code> and
+ <code title="rel-index">index</code> keywords specified together in
+ the same scope and contradict each other by having a different
+ number of <code title="rel-up">up</code> keywords, the link with the
+ greater number of <code title="rel-up">up</code> keywords must be
+ taken as giving the depth of the document.</p>
+
+ </div>
+
+ <div class="example">
+
+ <p>This can be used to mark up a navigation style sometimes known
+ as bread crumbs. In the following example, the current page can be
+ reached via two paths.</p>
+
+ <pre><nav>
+ <p>
+ <a href="/" rel="index up up up">Main</a> >
+ <a href="/products/" rel="up up">Products</a> >
+ <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
+ <a>Second hand</a>
+ </p>
+ <p>
+ <a href="/" rel="index up up">Main</a> >
+ <a href="/second-hand/" rel="up">Second hand</a> >
+ <a>Dishwashers</a>
+ </p>
+</nav></pre>
+
+ </div>
+
+ <p class="note">The <code title="dom-a-relList">relList</code> IDL
+ attribute (e.g. on the <code>a</code> element) does not currently
+ represent multiple <code title="rel-up">up</code> keywords (the
+ interface hides duplicates).</p>
+
+
+ <h5>Sequential link types</h5>
+
+ <p>Some documents form part of a sequence of documents.</p>
+
+ <p>A sequence of documents is one where each document can have a
+ <em>previous sibling</em> and a <em>next sibling</em>. A document
+ with no previous sibling is the start of its sequence, a document
+ with no next sibling is the end of its sequence.</p>
+
+ <p>A document may be part of multiple sequences.</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 sequence, and that the link is leading to
+ the document that is the first logical document in the sequence.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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 sequence, and that the link is leading to the
+ document that is the last logical document in the sequence.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <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 sequence, and that the link is leading to the
+ document that is the next logical document in the sequence.</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 sequence, and that the link is leading to the
+ document that is the previous logical document in the sequence.</p>
+
+ <div class="impl">
+
+ <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>
+
+ </div>
+
+
+ <h5>Other link types</h5>
+
+ <p><dfn title="concept-rel-extensions">Extensions to the predefined
+ set of link types</dfn> may be registered in the <a
+ href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
+ RelExtensions page</a>. <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>
+
+ <p>If the value contains a U+003A COLON character (:), it must
+ also be an <span>absolute URL</span>.</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.</dd>
+
+ </dl>
+
+ </dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of what the keyword's
+ meaning is.</p></dd>
+
+
+ <dt>Specification</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 should not use the values defined
+ to be synonyms, they are only intended to allow user agents to
+ support legacy content. Anyone may remove synonyms that are not
+ used in practice; only names that need to be processed as synonyms
+ for compatibility with legacy content are to be registered in this
+ way.</p></dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl>
+
+ <dt>Proposed</dt>
+
+ <dd>The keyword has not received wide peer review and
+ approval. Someone has proposed it and is, or soon will be, using
+ it.</dd>
+
+ <dt>Ratified</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 it in
+ incorrect ways.</dd>
+
+ <dt>Discontinued</dt>
+
+ <dd>The keyword has received wide peer review and it has been
+ found wanting. Existing pages are using this keyword, but new
+ pages should avoid it. The "brief description" and
+ "specification" entries will give details of what authors should
+ use instead, if anything.</dd>
+
+ </dl>
+
+ <p>If a keyword is found to be redundant with existing values, it
+ should be removed and listed as a synonym for the existing
+ value.</p>
+
+ <p>If a keyword is registered in the "proposed" state for a
+ period of a month or more without being used or specified, then it
+ may be removed from the registry.</p>
+
+ <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
+ changed to "discontinued" status.</p>
+
+ <p>Anyone can change the status at any time, but should only do so
+ in accordance with the definitions above.</p>
+
+ </dd>
+
+ </dl>
+
+ <div class="impl">
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki RelExtensions page to establish if a value is allowed or not:
+ values defined in this specification or marked as "proposed" or
+ "ratified" must be accepted when used on the elements for which they
+ apply as described in the "Effect on..." field, whereas values
+ marked as "discontinued" or not listed in either this specification
+ or on the aforementioned page must be rejected as invalid.
+ Conformance checkers may cache this information (e.g. for
+ performance reasons or to avoid the use of unreliable network
+ connectivity).</p>
+
+ <p>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 "proposed" status.</p>
+
+ </div>
+
+ <p>Types defined as extensions in the <a
+ href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
+ RelExtensions page</a> with the status "proposed" or "ratified" may
+ be used with the <code title="">rel</code> attribute on
+ <code>link</code>, <code>a</code>, and <code>area</code> elements in
+ accordance to the "Effect on..." field. <a
+ href="#refsWHATWGWIKI">[WHATWGWIKI]</a></p>
+
+
<h3>Common idioms without dedicated elements</h3>
<h4>Tag clouds</h4>
@@ -65429,1532 +66956,6 @@
- <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
- <span>valid URL</span>. This URL 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
- or keyword</span>. It gives the name of the <span>browsing
- context</span> that will be used. <span class="impl">User agents use
- this name when <span>following hyperlinks</span>.</span></p>
-
- <p>The <dfn id="ping"
- title="attr-hyperlink-ping"><code>ping</code></dfn> attribute, if
- present, gives the URLs of the resources that are interested in
- being notified if the user follows the hyperlink. The value must be
- a <span>set of space-separated tokens</span>, each of which must be a
- <span title="valid URL">valid URL</span>. <span class="impl">The
- value is used by the user agent for <span>hyperlink
- auditing</span>.</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 a <span>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 recognized by the user agent, 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 <span>valid
- media query</span>. The default, if the <code
- title="attr-hyperlink-media">media</code> attribute is omitted, is
- "<code title="">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 BCP 47 language code. <a href="#refsBCP47">[BCP47]</a>
- <span class="impl">User agents must not consider this attribute
- authoritative — upon fetching the resource, user agents must
- use only language information associated with the resource to
- determine its language, not metadata included in the link to the
- resource.</span></p>
-
- <p>The <dfn title="attr-hyperlink-type"><code>type</code></dfn>
- attribute, if present, gives the <span>MIME type</span> of the
- linked resource. It is purely advisory. The value must be a
- <span>valid MIME type</span>. <span class="impl">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.</span></p>
-
-
- <div class="impl">
-
- <h4><dfn>Following hyperlinks</dfn></h4>
-
- <p>When a user <em>follows a hyperlink</em>, the user agent must
- <span title="resolve a url">resolve</span> the <span>URL</span>
- given by the <code title="attr-hyperlink-href">href</code> attribute
- of that hyperlink, relative to the hyperlink element, and if that is
- successful, must <span>navigate</span> a <span>browsing
- context</span> to the resulting <span>absolute URL</span>. In the
- case of server-side image maps, the URL of the hyperlink must
- further have its <var>hyperlink suffix</var> appended to it.</p>
-
- <p>If <span title="resolve a url">resolving</span> the
- <span>URL</span> fails, the user agent may report the error to the
- user in a user-agent-specific manner, may navigate to an error page
- to report the error, or may ignore the error and do nothing.</p>
-
- <p>If the user indicated a specific <span>browsing context</span>
- 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 <span>browsing context</span> 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
- <span>browsing context</span> that is navigated must be chosen by
- applying <span>the rules for choosing 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 choosing 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>
-
- <p>The navigation must be done with the <span>browsing
- context</span> that contains the <code>Document</code> object with
- which the hyperlink's element in question is associated as the
- <span>source browsing context</span>.</p>
-
-
- <h5><dfn>Hyperlink auditing</dfn></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, and the hyperlink's <span>URL</span> can
- be <span title="resolve a url">resolved</span>, relative to the
- hyperlink element, without failure, then the user agent must take
- the <code title="attr-hyperlink-ping">ping</code> attribute's value,
- <span title="split a string on spaces">split that string on
- spaces</span>, <span title="resolve a url">resolve</span> each
- resulting token relative to the hyperlink element, and then should
- send a request (as described below) to each of the resulting <span
- title="absolute URL">absolute URLs</span>. (Tokens that fail to
- resolve are ignored.) 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 behavior, for
- example in conjunction with a setting that disables the sending of
- HTTP <code title="http-referer">Referer</code> (sic) 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 URLs in the list (e.g. ignoring any
- third-party URLs).</p>
-
- <p>For URLs that are HTTP URLs, the requests must be performed by
- <span title="fetch">fetching</span> the specified URLs using the
- POST method, with an entity body with the <span>MIME type</span>
- <code>text/ping</code> consisting of the four-character string
- "<code title="">PING</code>", from the <span>origin</span> of the
- <code>Document</code> containing the <span>hyperlink</span>. <!--
- not http-origin privacy sensitive --> All relevant cookie and HTTP
- authentication headers must be included in the request. Which other
- headers are required depends on the URLs involved.</p>
-
- <dl class="switch">
-
- <dt>If both the <span title="the document's address">address</span>
- of the <code>Document</code> object containing the hyperlink being
- audited and the ping URL have the <span>same origin</span></dt>
-
- <dd>The request must include a <code
- title="http-ping-from">Ping-From</code> HTTP header with, as its
- value, the <span title="the document's address">address</span> of
- the document containing the hyperlink, and a <code
- title="http-ping-to">Ping-To</code> HTTP header with, as its value,
- the address of the <span>absolute URL</span> of the target of the
- hyperlink. The request must not include a <code
- title="http-referer">Referer</code> (sic) HTTP header. <!-- because
- otherwise it would look like a trustable same-origin POST --></dd>
-
- <dt>Otherwise, if the origins are different, but the document
- containing the hyperlink being audited was not retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code
- title="http-referer">Referer</code> (sic) HTTP header [sic] with,
- as its value, the <span title="the document's current
- address">current address</span> of the document containing the
- hyperlink, a <code title="http-ping-from">Ping-From</code> HTTP
- header with the same value, and a <code
- title="http-ping-to">Ping-To</code> HTTP header with, as its value,
- the address of the target of the hyperlink.</dd>
-
- <dt>Otherwise, the origins are different and the document
- containing the hyperlink being audited was retrieved over an
- encrypted connection</dt>
-
- <dd>The request must include a <code
- title="http-ping-to">Ping-To</code> HTTP header with, as its value,
- the address of the target of the hyperlink. The request must
- neither include a <code title="http-referer">Referer</code> (sic)
- HTTP header nor include a <code
- title="http-ping-from">Ping-From</code> HTTP header.</dd>
-
- </dl>
-
- <p class="note">To save bandwidth, implementors might also wish to
- consider omitting optional headers such as <code>Accept</code> from
- these requests.</p>
-
- <p>User agents must, unless otherwise specified by the user, honor
- the HTTP headers (including, in particular, redirects and HTTP
- cookie headers), but must ignore any entity bodies returned in the
- responses. User agents may close the connection prematurely once
- they start receiving an entity body. <a
- href="#refsCOOKIES">[COOKIES]</a></p>
-
- <p>For URLs that are not HTTP URLs, the requests must be performed
- by <span title="fetch">fetching</span> the specified URL normally,
- and discarding the results.</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
- URLs.</p>
-
- <p class="example">For example, a visual user agent could include
- the hostnames of the target ping URLs along with the hyperlink's
- actual URL in a status bar or tooltip.</p>
-
- </div>
-
- <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 URL
- unobscured.</li>
-
- <li>It allows the UA to inform the user about the out-of-band
- notifications.</li>
-
- <li>It allows the user to disable the notifications without losing
- the underlying link functionality.</li>
-
- <li>It allows the UA to optimize 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 make the user experience more transparent.</p>
-
- </div>
-
- <!-- resolving ping urls happens at audit time, so base URL changes
- affect the values of ping attributes -->
-
-
-
- <h4 id="linkTypes">Link types</h4>
-
- <p>The following table summarizes 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 <i>referenced document</i> refers to
- the resource identified by the element representing the link, and
- the term <i>current document</i> refers to the resource within
- which the element representing the link finds itself.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
- <p>Except where otherwise specified, a keyword must not be specified
- more than once per <code title="attr-rel-hyperlink">rel</code>
- attribute.</p>
-
- <p>The link types that contain no U+003A COLON characters (:),
- including all those defined in this specification, are <span>ASCII
- case-insensitive</span> values<span class="impl">, and must be
- compared as such</span>.</p>
-
- <p class="example">Thus, <code title="">rel="next"</code> is the
- same as <code title="">rel="NEXT"</code>.</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>
-<!-- (commented out on the assumption that rel=contact is really XFN)
- <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-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 main content of 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-noreferrer">noreferrer</code></td>
- <td><em>not allowed</em></td>
- <td><span>Hyperlink</span></td>
- <td>Requires that the user agent not send an HTTP <code title="http-referer">Referer</code> (sic) header if the user follows the hyperlink.</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 preemptively 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>
-
- <div class="impl">
-
- <p>Some of the types described below list synonyms for these
- values. These <!--<span class="impl">-->are to be handled as
- specified by user agents, but<!--</span>--> must not be used in
- documents.</p>
-
- </div>
-
- <!-- v2 ideas:
- * rel="script"
- * rel="related" // see also
- * http://microformats.org/wiki/rel-enclosure
- -->
-
-
- <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 contain 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>
-
- <div class="impl">
-
- <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 it
- indicates that the referenced document is a syndication feed (though
- not necessarily syndicating exactly the same content as the current
- page).</p>
-
- <div class="impl">
-
- <p>The first <code>link</code>, <code>a</code>, or <code>area</code>
- element in the document (in tree order) with the <code
- title="rel-alternate">alternate</code> keyword 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> must be treated as the default
- syndication feed for the purposes of feed autodiscovery.</p>
-
- <div class="example">
- <p>The following <code>link</code> element gives the syndication
- feed for the current page:</p>
- <pre><link rel="alternate" type="application/atom+xml" 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="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
- <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
- <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
-</ul></pre>
- </div>
-
- </div>
-
-
-
-
- </div>
-
- <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>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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 nearest <code>article</code> element ancestor of the element
- defining the hyperlink, if there is one, or of the page as a whole,
- otherwise.</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> URL giving the e-mail address of the
- author. <a href="#refsMAILTO">[MAILTO]</a></p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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>
-
-<!-- (commented out on the assumption that rel=contact is really XFN)
- <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
- author of the nearest <code>article</code> element ancestor of the
- element defining the hyperlink, if there is one, or of the page as a
- whole, otherwise.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
- <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-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 id=rel-icon>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>
-
- <div class="impl">
-
- <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>
-
- </div>
-
- <p>Icons could be auditory icons, visual icons, or other kinds of
- icons. <span class="impl">If multiple icons are provided, the user
- agent must select the most appropriate icon according to the <code
- title="attr-link-type">type</code>, <code
- title="attr-link-media">media</code>, and <code
- title="attr-link-sizes">sizes</code> attributes. If there are
- multiple equally appropriate icons, user agents must use the last
- one declared in <span>tree order</span>. If the user agent tries to
- use an icon but that icon is determined, upon closer examination, to
- in fact be inappropriate (e.g. because it uses an unsupported
- format), then the user agent must try the next-most-appropriate icon
- as determined by the attributes.</span></p>
-
- <div class="impl">
-
- <p>There is no default type for resources given by the <code
- title="rel-icon">icon</code> keyword. However, for the purposes of
- <a href="#concept-link-type-sniffing">determining the type of the
- resource</a>, user agents must expect the resource to be an image.</p>
-
- </div>
-
- <p>The <dfn title="attr-link-sizes"><code>sizes</code></dfn>
- attribute gives the sizes of icons for visual media.</p>
-
- <p>If specified, the attribute must have a value that is an
- <span>unordered set of unique space-separated tokens</span>. The
- values must all be either <code
- title="attr-link-sizes-any">any</code> or a value that consists of
- two <span title="valid non-negative integer">valid non-negative
- integers</span> that do not have a leading U+0030 DIGIT ZERO (0)
- character and that are separated by a single U+0078 LATIN SMALL
- LETTER X character (x).</p>
-
- <p>The keywords represent icon sizes.</p>
-
- <div class="impl">
-
- <p>To parse and process the attribute's value, the user agent must
- first <span title="split a string on spaces">split the attribute's
- value on spaces</span>, and must then parse each resulting keyword
- to determine what it represents.</p>
-
- </div>
-
- <p>The <dfn title="attr-link-sizes-any"><code>any</code></dfn> keyword
- represents that the resource contains a scalable icon, e.g. as
- provided by an SVG image.</p>
-
- <div class="impl">
-
- <p>Other keywords must be further parsed as follows to determine
- what they represent:</p>
-
- <ul>
-
- <li><p>If the keyword doesn't contain exactly one U+0078 LATIN
- SMALL LETTER X character (x), then this keyword doesn't represent
- anything. Abort these steps for that keyword.</p></li>
-
- <li><p>Let <var title="">width string</var> be the string before
- the "<code title="">x</code>".</p></li>
-
- <li><p>Let <var title="">height string</var> be the string after the
- "<code title="">x</code>".</p></li>
-
- <li><p>If either <var title="">width string</var> or <var
- title="">height string</var> start with a U+0030 DIGIT ZERO (0)
- character or contain any characters other than characters in the
- range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
- keyword doesn't represent anything. Abort these steps for that
- keyword.</p></li>
-
- <li><p>Apply the <span>rules for parsing non-negative
- integers</span> to <var title="">width string</var> to obtain <var
- title="">width</var>.</p></li>
-
- <li><p>Apply the <span>rules for parsing non-negative
- integers</span> to <var title="">height string</var> to obtain <var
- title="">height</var>.</p></li>
-
- <li><p>The keyword represents that the resource contains a bitmap
- icon with a width of <var title="">width</var> device pixels and a
- height of <var title="">height</var> device pixels.</p></li>
-
- </ul>
-
- </div>
-
- <p>The keywords specified on the <code
- title="attr-link-sizes">sizes</code> attribute must not represent
- icon sizes that are not actually available in the linked
- resource.</p>
-
- <div class="impl">
-
- <p>If the attribute is not specified, then the user agent must
- assume that the given icon is appropriate, but less appropriate than
- an icon of a known and appropriate size.</p>
-
- </div>
-
- <div class="example">
-
- <p>The following snippet shows the top part of an application with
- several icons.</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>lsForums — Inbox</title>
- <link rel=icon href=favicon.png sizes="16x16" type="image/png">
- <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
- <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
- <link rel=icon href=iphone.png sizes="59x60" type="image/png">
- <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
- <link rel=stylesheet href=lsforums.css>
- <script src=lsforums.js></script>
- <meta name=application-name content="lsForums">
- </head>
- <body>
- ...</pre>
-
- </div>
-
-
- <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 main content of the current document is
- provided.</p>
-
- <p>This specification does not specify how to distinguish between
- the main content of a document and content that is not deemed to be
- part of that main content. The distinction should be made clear to
- the user.</p>
-
- <div class="example">
-
- <p>Consider a photo sharing site. A page on that site might
- describe and show a photograph, and the page might be marked up as
- follows:</p>
-
- <pre><!DOCTYPE HTML>
-<html>
- <head>
- <title>Exampl Pictures: Kissat</title>
- <link rel="stylesheet" href="/style/default">
- </head>
- <body>
- <h1>Kissat</h1>
- <nav>
- <a href="../">Return to photo index</a>
- </nav>
- <figure>
- <img src="/pix/39627052_fd8dcd98b5.jpg">
- <figcaption>Kissat</figcaption>
- </figure>
- <p>One of them has six toes!</p>
- <p><small><a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
- <footer>
- <a href="/">Home</a> | <a href="../">Photo index</a>
- <p><small>© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
- </footer>
- </body>
-</html></pre>
-
- <p>In this case the <code title="rel-license">license</code>
- applies to just the photo (the main content of the document), not
- the whole document. In particular not the design of the page
- itself, which is covered by the copyright given at the bottom of
- the document. This could be made clearer in the styling
- (e.g. making the license link prominently positioned near the
- photograph, while having the page copyright in light small text at
- the foot of the page.</p>
-
- </div>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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, or that the link to the referenced document was included
- primarily because of a commercial relationship between people
- affiliated with the two pages.</p>
-
-
- <h5>Link type "<dfn title="rel-noreferrer"><code>noreferrer</code></dfn>"</h5>
-
- <p>The <code title="rel-noreferrer">noreferrer</code> keyword may be
- used with <code>a</code> and <code>area</code> elements.</p>
-
- <p>It indicates that no referrer information is to be leaked when
- following the link.</p>
-
- <div class="impl">
-
- <p>If a user agent follows a link defined by an <code>a</code> or
- <code>area</code> element that has the <code
- title="rel-noreferrer">noreferrer</code> keyword, the user agent
- must not include a <code title="http-referer">Referer</code> (sic)
- HTTP header (<span title="concept-http-equivalent-headers">or
- equivalent</span> for other protocols) in the request.</p>
-
- <p>This keyword also <a href="#noopener">causes the <code
- title="dom-opener">opener</code> attribute to remain null</a> if the
- hyperlink creates a new <span>browsing context</span>.</p>
-
- </div>
-
- <!-- v2: Would be nice to apply this to other elements too,
- e.g. letting <img> or CSS or <video> hide the referrer -->
-
-
- <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>
-
- <p>There is no default type for resources given by the <code
- title="rel-prefetch">prefetch</code> keyword.</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. <a
- href="#refsOPENSEARCH">[OPENSEARCH]</a></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 <dfn>the link
- is an alternative stylesheet</dfn>; in this case, the <code
- title="attr-title">title</code> attribute must be specified on the
- <code>link</code> element, with a non-empty value.</p>
-
- <p>The default type for resources given by the <code
- title="rel-stylesheet">stylesheet</code> keyword is <code
- title="">text/css</code>.</p>
-
- <div class="impl">
-
- <p><strong>Quirk</strong>: If the document has been set to
- <span>quirks mode</span> and the <span
- title="Content-Type">Content-Type metadata</span> of the external
- resource is not a supported style sheet type, the user agent must
- instead assume it to be <code title="">text/css</code>.</p>
-
- </div>
-
-
- <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 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>
-
- <p class="note">Since it indicates that the tag <em>applies to the
- current document</em>, it would be inappropriate to use this keyword
- in the markup of a <a href="#tag-cloud">tag cloud</a>, which lists
- the popular tag across a set of pages.</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. The document of which a document is a
- subdocument is said to be the document's <em>parent</em>. A document
- with no parent forms the top of the hierarchy.</p>
-
- <p>A document may be part of multiple hierarchies.</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. It
- conveys more information when used with the <code
- title="rel-up">up</code> keyword (q.v.).</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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 a document that is an ancestor of the current
- document.</p>
-
- <p>The <code title="rel-up">up</code> keyword may be repeated within
- a <code title="attr-hyperlink-rel">rel</code> attribute to indicate
- the hierarchical distance from the current document to the
- referenced document. If it occurs only once, then the link is
- leading to the current document's parent; each additional occurrence
- of the keyword represents one further level. If the <code
- title="rel-index">index</code> keyword is also present, then the
- number of <code title="rel-up">up</code> keywords is the depth of
- the current page relative to the top of the hierarchy. Only one link
- is created for the set of one or more <code title="rel-up">up</code>
- keywords and, if present, the <code title="rel-index">index</code>
- keyword.</p>
-
- <p>If the page is part of multiple hierarchies, then they should be
- described in different <span
- title="paragraph">paragraphs</span>. <span class="impl">User agents
- must scope any interpretation of the <code title="rel-up">up</code>
- and <code title="rel-index">index</code> keywords together
- indicating the depth of the hierarchy to the <span>paragraph</span>
- in which the link finds itself, if any, or to the document
- otherwise.</span></p>
-
- <div class="impl">
-
- <p>When two links have both the <code title="rel-up">up</code> and
- <code title="rel-index">index</code> keywords specified together in
- the same scope and contradict each other by having a different
- number of <code title="rel-up">up</code> keywords, the link with the
- greater number of <code title="rel-up">up</code> keywords must be
- taken as giving the depth of the document.</p>
-
- </div>
-
- <div class="example">
-
- <p>This can be used to mark up a navigation style sometimes known
- as bread crumbs. In the following example, the current page can be
- reached via two paths.</p>
-
- <pre><nav>
- <p>
- <a href="/" rel="index up up up">Main</a> >
- <a href="/products/" rel="up up">Products</a> >
- <a href="/products/dishwashers/" rel="up">Dishwashers</a> >
- <a>Second hand</a>
- </p>
- <p>
- <a href="/" rel="index up up">Main</a> >
- <a href="/second-hand/" rel="up">Second hand</a> >
- <a>Dishwashers</a>
- </p>
-</nav></pre>
-
- </div>
-
- <p class="note">The <code title="dom-a-relList">relList</code> IDL
- attribute (e.g. on the <code>a</code> element) does not currently
- represent multiple <code title="rel-up">up</code> keywords (the
- interface hides duplicates).</p>
-
-
- <h5>Sequential link types</h5>
-
- <p>Some documents form part of a sequence of documents.</p>
-
- <p>A sequence of documents is one where each document can have a
- <em>previous sibling</em> and a <em>next sibling</em>. A document
- with no previous sibling is the start of its sequence, a document
- with no next sibling is the end of its sequence.</p>
-
- <p>A document may be part of multiple sequences.</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 sequence, and that the link is leading to
- the document that is the first logical document in the sequence.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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 sequence, and that the link is leading to the
- document that is the last logical document in the sequence.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <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 sequence, and that the link is leading to the
- document that is the next logical document in the sequence.</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 sequence, and that the link is leading to the
- document that is the previous logical document in the sequence.</p>
-
- <div class="impl">
-
- <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>
-
- </div>
-
-
- <h5>Other link types</h5>
-
- <p><dfn title="concept-rel-extensions">Extensions to the predefined
- set of link types</dfn> may be registered in the <a
- href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
- RelExtensions page</a>. <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>
-
- <p>If the value contains a U+003A COLON character (:), it must
- also be an <span>absolute URL</span>.</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.</dd>
-
- </dl>
-
- </dd>
-
-
- <dt>Brief description</dt>
-
- <dd><p>A short non-normative description of what the keyword's
- meaning is.</p></dd>
-
-
- <dt>Specification</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 should not use the values defined
- to be synonyms, they are only intended to allow user agents to
- support legacy content. Anyone may remove synonyms that are not
- used in practice; only names that need to be processed as synonyms
- for compatibility with legacy content are to be registered in this
- way.</p></dd>
-
-
- <dt>Status</dt>
-
- <dd>
-
- <p>One of the following:</p>
-
- <dl>
-
- <dt>Proposed</dt>
-
- <dd>The keyword has not received wide peer review and
- approval. Someone has proposed it and is, or soon will be, using
- it.</dd>
-
- <dt>Ratified</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 it in
- incorrect ways.</dd>
-
- <dt>Discontinued</dt>
-
- <dd>The keyword has received wide peer review and it has been
- found wanting. Existing pages are using this keyword, but new
- pages should avoid it. The "brief description" and
- "specification" entries will give details of what authors should
- use instead, if anything.</dd>
-
- </dl>
-
- <p>If a keyword is found to be redundant with existing values, it
- should be removed and listed as a synonym for the existing
- value.</p>
-
- <p>If a keyword is registered in the "proposed" state for a
- period of a month or more without being used or specified, then it
- may be removed from the registry.</p>
-
- <p>If a keyword is added with the "proposed" 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 "proposed" status and found to be harmful, then it should be
- changed to "discontinued" status.</p>
-
- <p>Anyone can change the status at any time, but should only do so
- in accordance with the definitions above.</p>
-
- </dd>
-
- </dl>
-
- <div class="impl">
-
- <p>Conformance checkers must use the information given on the WHATWG
- Wiki RelExtensions page to establish if a value is allowed or not:
- values defined in this specification or marked as "proposed" or
- "ratified" must be accepted when used on the elements for which they
- apply as described in the "Effect on..." field, whereas values
- marked as "discontinued" or not listed in either this specification
- or on the aforementioned page must be rejected as invalid.
- Conformance checkers may cache this information (e.g. for
- performance reasons or to avoid the use of unreliable network
- connectivity).</p>
-
- <p>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 "proposed" status.</p>
-
- </div>
-
- <p>Types defined as extensions in the <a
- href="http://wiki.whatwg.org/wiki/RelExtensions">WHATWG Wiki
- RelExtensions page</a> with the status "proposed" or "ratified" may
- be used with the <code title="">rel</code> attribute on
- <code>link</code>, <code>a</code>, and <code>area</code> elements in
- accordance to the "Effect on..." field. <a
- href="#refsWHATWGWIKI">[WHATWGWIKI]</a></p>
-
-
<!--END html--><!--END w3c-html-->
<!--END complete-->
More information about the Commit-Watchers
mailing list