Change Proposal for ISSUE-119

SUMMARY

The current definition for the "up" link relation is incompatible with 
the IANA definition [1]. It also introduces a special case that makes 
the number of repetitions significant, which is in conflict with the 
generic link relation definition in [2].

RATIONALE

Link relations in HTML should not differ significantly from their use in 
other formats (Atom) or protocols (HTTP Link header). Thus, the special 
case should be removed.

Also note that the spec points out:

"Note: The relList IDL attribute (e.g. on the a element) does not 
currently represent multiple up keywords (the interface hides duplicates)."

...which shows that the overloading of link relation semantics leads to 
confusion even within HTML.

DETAILS

In [3], remove these paragraphs:

-- snip --
The up keyword may be repeated within a rel 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 index keyword is also present, then 
the number of up 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 up  keywords and, if present, the index  keyword.

If the page is part of multiple hierarchies, then they should be 
described in different paragraphs. User agents must scope any 
interpretation of the up and index keywords together indicating the 
depth of the hierarchy to the paragraph in which the link finds itself, 
if any, or to the document otherwise.

When two links have both the up and index keywords specified together in 
the same scope and contradict each other by having a different number of 
up keywords, the link with the greater number of up keywords must be 
taken as giving the depth of the document.

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.

<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>
-- snip --


IMPACT

1. Positive Effects

- Removes an incompatibility with link relations outside HTML.

- Removes a special case within the HTML spec.

- Removes an inconsistency with the relList IDL attribute.

2. Negative Effects

The use case of augmenting bread crumbs isn't addressed anymore. I 
recommend to handle this like any other feature request, state the use 
case, and discuss potential solutions that do not require special-casing 
this link relation.

3. Conformance Classes Changes

None.

4. Risks

None.


REFERENCES

[1] <http://www.iana.org/assignments/link-relations/link-relations.txt>
[2] 
<http://tools.ietf.org/html/draft-nottingham-http-link-header-10#section-3>#
[3] <http://dev.w3.org/html5/spec/Overview.html#link-type-up>

Received on Tuesday, 19 October 2010 12:12:07 UTC