[whatwg] Where did the "rev" attribute go?
ian at hixie.ch
Tue Aug 7 21:15:31 PDT 2007
This e-mail consists of replies to a few e-mails on the subject of links
and link relationship types. No changes were made to the spec in response
to these e-mails; if you reply, please indicate if you think something
needs to change in the spec. Thanks!
On Sat, 8 Jul 2006, Charles Iliya Krempeaux wrote:
> But, if the intent [of removing 'rev'] to really get rid of confusion
> then.... There's actually 2 things I noticed confuse people.
> #1: That the label you pick for the "rel" (or "rev") needs to be a noun.
> (I do understand why... at least I think I do... so that you can use the
> same label in the "class" attribute. But it makes things difficult for
> some people.)
As others noted, the label you should pick for "rel" should be taken from
a specific set of labels defined in a specification (either HTML4, or
HTML5, or a Microformat spec, or some other extension specification). So
the "noun" aspect isn't a source of confusion as far as I can tell. It may
be that people don't know you shouldn't just arbitrarily make up now
> #2: That "rel" (and "rev") represent a relation between the two. Often
> people seem to want to "classify" what's at the end of the "href".
> (Instead of specifying a relation.) Perhaps a new attribute is needed.
> Perhaps "hrefclass".
"class" on an <a> element can be used for this, IMHO.
On Tue, 11 Jul 2006, Charles Iliya Krempeaux wrote:
> Let's say in a page, I have the following HTML code...
> <li class="xoxo shows">
> <li><a rel="show" href="http://show.example.com/">Example IPTV
> <li><a rel="show" href="http://show2.example.com/">Another Example IPTV
> The semantics here are.... The class-xoxo (on the <li>) says that I'm
> giving a list here.
I assume you meant to use an <ol> on the outside, not an <li>. And in that
case, it's the <ol> that says that you're giving a list, the xoxo class
isn't necesarry to give the "list" semantic.
> And the class-shows says this thing is/has "shows". (So basically, I'm
> listing shows.)
This isn't a strong semantic (a random person who doesn't know you
wouldn't necessarily know that's what your class meant), but it can be a
convention you use within a particular community, sure.
> The rel-show inside the "list of shows", says what's at the end of the
> "href" is a "show" for the list of "shows".
You could easily use "class" on the <a> element for this, without risking
a clash with a future value introduced in (say) HTML6 for slideshow links.
It would be as solid, semantically.
If you wanted to go further, you'd have to define a specification for your
rel or class "show" value. Your specification could then include the rest
of your description:
> So,... if you go to the URL in the "href", you get a whole HTML page
> with all sort of stuff in there. But what is the "show"? The whole
> page? Just part of it?
> Well, I then search the page for class-show. (I look for something
> inside the page with a class with the same token/name use in the "rel"
> that linked there.)
> If I find (just) one, then great, that's probably what I want to
> concentrate on. (The other parts of the page are probably irrelevent.)
> If not, I'll probably have to concentrate on the whole page.
> (This is the idea of opaque semantics that I was talking about before.)
> Does that clear it up?
> (This is what I imagined the developers of these things originally
> thought up.)
> I suggested "hrefclass" because we already have things like... "lang"
> and "hreflang". It just seemed to follow the same style. (Since this
> seems to be just like the "class" attribute, expect we are applying it
> to what is at the end of the "href"... so "hrefclass".)
I don't really understand why you can't just apply it to the link itself
(i.e. use "class").
On Tue, 11 Jul 2006, Charles Iliya Krempeaux wrote:
> Perhaps it's a poor example. But what I've gotten from the specs is
> that the "rel" attribute can be used in this way.
Could you check the HTML5 spec and let me know if it can still be
interpreted this way?
> For an example that's gained some popularity, look at hCard.
> People wanted to semantically denote "contact info". So they choose a
> set of class names to use (to do this) and some rules about them.
> Creating the standard is a somewhat arbitrury process. And requires
> humans to do it.
> Although with opaque semantics, like the "rel" name matching the "class"
> name, you don't need a human intervention to parse much of it.
> Does what I'm saying make sense? Or should I explain it more?
I'm not convinced there's really a use case for making this automated to
the level that you describe. It seems best to stick to having
specifications for the cases that actually have uses.
> Alot of this is done for the benefit of machines (like browsers,
> spiders, search engines, etc).
Right now, everything is done for the benefit of humans. The machines are
> But getting back to one things you said... it is NOT always the case
> that you can "grab" something with an "id". Sometimes using "class"
> works better.
> For example, consider if I wrote an article. And, in the HTML for that
> article, I mark certain parts of it as being part of a "summary" for it.
> For example....
> <span class="summary">Blah blah blah. Blah blah blah blah. Blah blah
> blah blah.</span> Blah blah.
> Blah blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
> Blah blah. <span class="summary">Blah blah blah.</span>
> Blah blah blah. Blah blah blah blah. Blah blah blah blah. Blah blah.
> How would I grab that with an "id".
> The class-summary's in there let me get at the summary that spread out
> in multiple fragments.
What if the class isn't there? Why is the class different than the ID?
> Just one other example for good measure. Consider this code...
> I am <a href="http://changelog.ca/">Charles Iliya Krempeaux</a>.
> As a human you can understand what that means. You know it is a
> statement. You know "Charles Iliya Krempeaux" is a name. You know that
> " http://changelog.ca/" is the site for "Charles Iliya Krempeaux".
> But a machines does not know that. It cannot figure that out.
> That's where some "semantic salt" can be helpful. hCard's let us add a
> little semantics to make it so machines can figure out the "name" part
> of it too.
> So, if I were add an hCard I'd get...
> I am <a class="vcard fn url" href="http://changelog.ca/">Charles Iliya
> (The class-vcard, class-fn, and class-url are all part of hCard.)
> With just that, machines now know that "Charles Iliya Krempeaux" is a
> name. And "http://changelog.ca" is the site for "Charles Iliya
> I could even add more semantics....
> I am <a class="vcard fn url" href="http://changelog.ca/"><span
> class="given-name">Charles</span> <span class="additional-name">Iliya</span>
> <span class="family-name">Krempeaux</span></a>.
> Now, not only does it know that "Charles Iliya Krempeaux" is a name.
> But it also knows that "Charles" is the person's "given name". That
> "Iliya" is that person's "additional name". And that "Krempeaux" is
> that person's "family name".
> (If you are coming from an XML point-of-view. Using the class names for
> semantics is almost like entangling XML within HTML. If that makes
With you so far... But so what? As you say, this all works. Why do we need
a generic mechanism? The only reason the computer "knows" that Krempeaux
is your family name is because someone wrote a spec for class=family-name.
It's not automatic, how can it be?
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg