[HTML 4.01] Links with multiple 'rel' values allowed but undefined

To whom it may concern:

   I believe I have found an omission in the HTML 4.01 specification. The "link" and "a" elements are allowed to have "rel" and "rev" attributes, where the attributes contain a space-separated list of "link-type" values. However, the semantics of having multiple values in a "rel" or "rev" attribute is undefined by the specification. Please see the forwarded message (below) for further details about how this can be confusing to someone who is trying to correctly interpret the information that these attributes contain.


Thank you for your time,

-- Travis


---------- Forwarded message ----------
Date: Sun, 25 Dec 2005 15:52:50 -0800 (PST)
From: Travis Alexander Snoozy <tsnoozy@u.washington.edu>
To: chris@christophm.de
Subject: [cmSiteNavigation] Patch to detect multiple values in 'rel'

Hey there,

I came across your FireFox extension whilst tinkering around with a bunch of
mostly-unused HTML/XHTML features. I think it's great that you've written a
toolbar to harness <link/> data -- this type of data is very useful, and also
extremely under-utilized.

I did, however, note a bug in your extension. Namely, if I have a link with
more than one value, I expect cmSiteNavigation to display the link in all of 
its roles. Instead, cmSiteNavigation stops displaying the link altogether.

Now, according to the W3C HTML 4.01 spec, having multiple values for "rel" or 
"rev" is allowed(1). Unfortunately, the way in which multiple values interact 
is undefined. In one case -- "alternate stylesheet" -- the values are not taken 
independently(2). I assume that this is the exception, and generate a new link 
type (alternatestylesheet) when I encounter this combination. Furthermore, 
whenever "alternate" is not by itself in a relation, "alternate" will be 
prepended to all of the relation types in the list. This behavior makes logical 
sense -- if I have an "alternate chapter next" it's very likely an 
"alternatechapter alternatenext", and NOT an "alternatechapter next" or 
"alternate chapter next". Like I said, though, the specification leaves the 
meaning of multiple rel values undefined, which means that there is no real 
"right" answer :/.

In any case, a patch is attached with my modifications. Enjoy!


-- Travis

(1) <http://www.w3.org/TR/html4/types.html#type-links>
(2) <http://www.w3.org/TR/html4/present/styles.html#h-14.3.2>

Received on Monday, 26 December 2005 02:18:29 UTC