Change Proposal for ISSUE-127

SUMMARY

The specification currently defines link types in a way such that they 
can have different semantics depending on what element they appear on 
(<link> as opposed to <a> and <area>). This is a degree of freedom that 
isn't needed for the currently defined link relations, and also is in 
conflict with the goal to make link relations handling inside HTML 
consistent with link relations in other contexts (HTTP headers, Atom, etc).

RATIONALE

The semantics of a link relation should not vary too much depending on 
where it appears. Of course, this doesn't mean that it can't be tuned 
based on the context, such as "on <link>, the relation applies to the 
containing document, while on <a>/<area>, it applies to the enclosing 
sectioning element".

DETAILS

In [1], the spec specifies the effect of a link relation in terms of 
"effect on <link>" and "effect on <a> and <area>". As a matter of fact, 
for those link relations that are allowed on both elements, the effect 
is always the same.

Therefore, to simplify the spec, and to encourage consistent semantics 
across elements, this Change Proposal recommends to change the columns to:

"effect" (stating the type)

   and

"allowed on" (listing the HTML elements it is allowed on).

In [2], change

-- snip --
Effect on... link

     One of the following:

     Not allowed
         The keyword must not be specified on link elements.
     Hyperlink
         The keyword may be specified on a link element; it creates a 
hyperlink.
     External Resource
         The keyword may be specified on a link element; it creates an 
external resource link.

Effect on... a and area

     One of the following:

     Not allowed
         The keyword must not be specified on a and area elements.
     Hyperlink
         The keyword may be specified on a and area elements; it creates 
a hyperlink.
     External Resource
         The keyword may be specified on a a and area elements; it 
creates an external resource link.
     Hyperlink Annotation
         The keyword may be specified on a a and area elements; it 
annotates other hyperlinks created by the element.
-- snip --

to

-- snip --
Effect

     One of the following:

     Hyperlink
         The keyword creates a hyperlink.
     External Resource
         The keyword creates an external resource link.
     Hyperlink Annotation
         The keyword annotates other hyperlinks created by the element.

Allowed on...

     A list of the HTML element names the relation is allowed on, such 
as: "<link>, "<a>, and <area>".
-- snip --

(this change was originally proposed in [3] and [4])


IMPACT

1. Positive Effects

Removal of an unused degree of freedom in defining link relations; 
consistency with link relations in other contexts.

2. Negative Effects

None.

3. Conformance Classes Changes

None. There *is* an intended effect to future, yet-to-be-defined link 
relations in that their semantics should be independent on where they 
appear.

4. Risks

None.


REFERENCES

[1] <http://www.w3.org/TR/html5/Overview.html#linkTypes>
[2] <http://www.w3.org/TR/html5/Overview.html#other-link-types>
[3] <http://lists.w3.org/Archives/Public/public-html/2010Aug/0225.html>
[4] <http://lists.w3.org/Archives/Public/public-html/2010Sep/0002.html>

Received on Saturday, 20 November 2010 20:43:29 UTC