Link source/destination confusion

Ka-Ping Yee (ping@foresight.org)
Thu, 07 Aug 1997 02:08:15 -0700


Message-ID: <33E9907F.11751ED2@foresight.org>
Date: Thu, 07 Aug 1997 02:08:15 -0700
From: Ka-Ping Yee <ping@foresight.org>
To: www-html-editor@w3.org
CC: www-html@w3.org
Subject: Link source/destination confusion

Dave Raggett, Arnaud Le Hors, and Ian Jacobs:

I have recently read your draft for the HTML 4.0 specification.
It is a very nice piece of work, but i am deeply concerned about
one particular section and hope you will accept my comments.  In
the following text i will mark excerpts from the HTML 4.0 draft
with ">" and other excerpts with ":".

I refer to the "Links and Anchors" subsection at

    http://www.w3.org/TR/WD-html40/struct/links.html#h-7.6.2

Although this description of link ends may be consistent, i feel
that it is presented in an extremely confusing manner -- especially
for those familiar with terminology in common use to describe
links and their directionality.  I submit that the definitions
of "source" and "destination" in the draft (a) are at odds with
current practice; (b) are too confusing for the majority of web
users to understand; and (c) may lead to ambiguities that make
them unworkable.

> Every link definition specifies both the source and the
> destination of the link. One end is always defined as the
> location where the link definition occurs. The other end is
> specified by an attribute in the link definition.

The text describes the two ends of a link as the one located
at the definition and the one defined by the HREF attribute,
but it does not give names to these two concepts.  Instead it
tries to further define "source" and "destination" independently
of these two things.

> The rel attribute specifies that the link being defined has
> its source in the current document.  The rev attribute
> specifies that the link being defined has its destination
> in the current document.

The attempt to make the meanings of "source" and "destination"
depend on the existence of a REL or REV attribute seems flawed.
Such a declaration assigns no meaning to links which do not have
either attribute or to those which have both attributes.  This
is not something, as far as i know, that can be enforced in SGML,
and leaves the vast majority of existing links in undefined limbo.

> The link designating the previous chapter has its destination
> in the current document and its source in the preceding
> chapter. The link designating the next chapter has its source
> in the current document and its destination in the next chapter.

To me this doesn't make much sense.  The text seems to dictate
that the link to the next chapter must use the REL attribute
and the link to the previous chapter must use the REV attribute,
and there isn't any particular reason for this.  This would imply
that the link to the previous chapter must have REV="next", which
is quite non-obvious.

Compare this to previous material on the subject.

From http://www.w3.org/TR/REC-html32.html#link:
:
: A link from document A to document B with REV=relation
: expresses the same relationship as a link from B to A
: with REL=relation.

Here there is no implication that the existence of a REL or
REV attribute affects the directionality of the link.  I have
always interpreted this kind of statement to mean that the
choice of REL or REV is a way to express the relationship,
not to express the link direction.  In the above sentence,
i take "a link from B to A" to mean "a link in document B
with its HREF attribute pointing at A", and i believe that
most people understand it this way.

The strangeness of the HTML 4.0 draft is even more clear when
you compare it to WD-htmllink.

From http://www.w3.org/TR/WD-htmllink#anchor:
:
: The A element (delimited by <a> and </a> tags) represents
: an anchor, one endpoint of a link.  Each link has a source
: anchor and a target anchor. The HREF attribute refers to
: the target anchor by its URL. 
:
: The content between the start and end tag is used as the
: label for the link, e.g: 
:
:   <a href=destination>link label</a>
:
: ...the source anchor represents an opportunity for the user
: to traverse the link and visit the target anchor...

Here the value of the HREF attribute is explicitly referred
to as both the "destination" and the "target", and the text
implies that the "source" is the location where the link is
defined.

                *         *         *

Allow me to present my own understanding of REL and REV,
which i personally believe to be simpler and more familiar
to Web users than the definitions in the HTML 4.0 draft:

    In HTML, a link is defined using an HREF attribute
    on either an <A> tag or a <LINK> tag.

    A link joins two things: a SOURCE, which is located
    at the HTML tag defining the link, and a TARGET,
    which is located by the HREF attribute to the tag.

    The value of the REL attribute on this tag gives the
    role of the TARGET with respect to the SOURCE.  The
    value of the REV attribute on this tag gives the role
    of the SOURCE with respect to the TARGET.

    The TITLE attribute to the <A> or <LINK> tag gives
    an advisory title describing the TARGET.

(Alternative terminology substitutes "HEAD" for "TARGET"
and "TAIL" for "SOURCE".)  The preceding description implies:

    A link with SOURCE at A and TARGET at B that has
    REL=<relation> expresses the same relationship between
    A and B as a link with SOURCE at B and TARGET
    at A that has REV=<relation>.

    The REL and REV attributes are both optional.  It is
    also feasible for both relationships to be specified,
    e.g. <link href="chapter1.html" rel="prev" rev="next">
    in the second chapter of a series.

I would like you to consider describing my conception of REL
and REV in the HTML 4.0 draft.  Please correct me if this
understanding is wrong.  Even if it is wrong, however, i
nonetheless believe that the draft needs to be much clearer
about this issue.

Thank you very much for your attention,


Ping