[Bug 10434] Mint a link type for pointing to long descriptions (rel="longdesc")

http://www.w3.org/Bugs/Public/show_bug.cgi?id=10434


Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |a11y, a11y_text-alt
             Status|RESOLVED                    |REOPENED
         Resolution|WORKSFORME                  |
            Summary|Specify rel="longdesc" as   |Mint a link type for
                   |an equivalent to @longdesc  |pointing to long
                   |                            |descriptions
                   |                            |(rel="longdesc")




--- Comment #4 from Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>  2010-09-03 02:38:00 ---
(In reply to comment #3)
Getting rel="longdesc" into HTML5 sooner rather than later, could impact on the
(final) outcome of ISSUE-30 in one way or another. I therefore open this issue
again, offering more detailed description of how it should be implemented,
hoping that you seen opening for getting into the spec now. That said: I hope
that we discuss this issue in its own right - linking this issue to whether
@longdesc gets into the spec or not, is not likely to produce an honest and
productive debate of the features of rel="longdesc".


DETAILED rel="longdesc" PROPOSAL

PROBLEM:
HTML5 fails offer a link relation (also known as "link type") which

1. has the semantics "link to a long description in the WCAG sense" 
2. implies a programmatic association between such a link and the embedded
content it links from

  The @longdesc (or @describedby - bug 10455) is useful and should be kept.
However, @longdesc’s unique feature - that it doesn't create a regular link and
thus doesn't "disturb" those that supposedly  don't need it - is also many
times not an advantage: An author might actually *want* to create a link
control that is visible/accessible for *all* users and  which has the same or
simlar semantics as @longdesc as well as with same or similar user experience
as @longdesc has. However, there is no feature for that in HTML5.  WCAG 2.0
describes how to use regular links for this purpose. However, the methods it
proposes are - many of them - to be considered hacks. (See 


USE CASES:
* Data Visualization i.e. charts and graphs
* Diagrams
* Cartoons, drawings, illustrations,  etc
* When @longdesc would have been ideal, but doesn't work (either as replacement
or complement to @longdesc)


PURPOSE:
The purpose of rel="longdesc"/rel="description" would be to make sure that
plain old links can be used - better, easier and more flexible -  for the
purpose of linking to a long description of the object that the link is
visullay or programmatically connected to. It is an accommodation for blind and
visually impaired. However, unlike @longdes, it it is also aimed at all other
groups that could need  a long description in another format, and which also
would like to know in advance, that it is a long description and also would
like to know how long description links - compared with how other links works. 
(Gregory Rosmaita mentioned viewing wide embedded images on small screens as
one usecase - http://www.w3.org/Bugs/Public/show_bug.cgi?id=10455#c74)

The aim of the long description is to provide what the visual representation
provides. But the aim is also to offer a way for anyone to "draw a link"
between object and 'long description'.  Unlike (at least some interpretations
of) HTML4' longdesc attribute, a rel="longdesc" link  can be used for sighted
and non-sighted alike. However, @longdesc is meant to link to a resource that
is related to the current article/page. It is not meant for linking  to a
related article - in that case authors should rather another (or no) link type,
together with some link text which says "read more on this subject in this
related article".


FUNCTIONALITY & USAGE:
* The rel="longdesc" attribute can be placed  inside any link element (<link>,
<area> or <a>), when the purpose of the link is to link to a long description
of an embedded object.
* The link element with rel="longdesc" might be wrapped around the object, or
adjacent to the object, or  placed in an image <map> element for the object be
a child element of an <object> element. Thus there may or may not be a
programmatic association between the link element and the object for which it
points to a long descritpion. 
* When presenting the link to the user, the user agents should have the option
to programmatically inform the user that it is a long description type of link,
in such a way that the user both understands _that_ it is is a long description
kind of link, and also understand what it is a long description for. (Much like
for @longdesc today.)
* A user that is informed that the link is of type rel="longdesc", should be
able to have a set of expectations about such links. E.g.  when clicking the
link, the link should open in such a way that the current page is not
simultaneously closed.  This could be achieved with an implicit
target="_blank", whicih is the same method that is implemented for @longdesc.
Or it could be achieved via some AJAX implemenation. The user can expect that
the link points to a resource directly related/linked to - and crafted for -
the current page, and which only points  to some related in-dept info
specifically meant to be read, by those who want, in connection with the
current page/article. (This link type should *not* be used to link to an
article that merely *relates* to the current article, by being about the same
subjecto or something like that.) 
* A rel="longdesc" link should be able to point to a document containing both
images and text, provided that the images are of role="presentation" *and*
contains a real, long description.
* To allow easy hiding of rel="longdesc" links from visual display ("due to the
marketing departement's requirements"),  it should be considered whether the
link text of rel="longdesc" links can be permitted to be empty, in which case
it should be autogenerated by AT (or via CSS), much the same way that e.g. Jaws
generates "Press enter for long description" whenever there is a @longdesc.
* Links of rel="longdesc" type SHOULD  be revealed when using keyboard
navigation.
* The functionality should also offer good fallback when the user agent does
not have any support for this link type. Therefore, in order to ensure good
fallback, and in addtion to a description of how user agents should implement
rel="Longdesc",  we should also describe how authors can implement the expected
rel="longdesc" behavior. Keywords are: use of rel="longdesc", use of
target="_blank", use of CSS generated content (if there is no link text is
empty) and so on and so forth. 
* A link with rel="longdesc" should "live in the same namespace" as @longdesc.
Thus, when the mark-up makes it clear (e.g. via @role="img" on a wrapper
element) that they are point to a long description for the same thing,  then an
AT which supports both @longdesc and @rel="longdesc", should probably give
preference to the rel="longdesc" - or at least seek to filter out the one or
the other. Thus it if an <img> is wrapped inside a anchor element with
rel="longdesc", the @longdesc should preferrably be ignored - both to avoid
duplication and in case there they point to different resources. Instead the
rel="longdesc" link should be treated lik a @longdesc lik by the AT.
* Authors SHOULD NOT use 1 pixel images wrapped inside a rel="longdesc" link as
a method for hiding the rel="longdesc" link. Avoidance of that hackish method,
which never the less is described by WCAG 2.0 Technique G73, is one of the
reasons for the establishment of the rel="longdesc" link type.
* Finally, rel="longdesc" is likely to draw attention to this subject, and thus
create consciousness about the problem 'how to link to a long description',
including taht it would allow authors to become creative about how to solve the
problem.


LINKING METHODS - HTML5 vs WCAG2.
  There are 4 relevant ways to use links with the purpose of linking to a long
description. However, WCAG 2.0 only offer a description of one of them -
adjacent links - as well as of a fift method: @longdesc:
1.  a link adjacent to the object. Also known as "description links" in
      WCAG 2.0 Technique G73: http://www.w3.org/TR/WCAG20-HTML-TECHS/G73
2.  a link wrapped around the image/object. WCAG 2.0's only discusses this
option
     for the usecase when an image funcitons as a link to another resource - it
does
     not discuss it as an option for providing an longer description
3.  an image map to create an association between object and link(s) 
     Image maps is actually a special case of adjacent links
4.  a link that is located inside the fallback of the object,
     e.g. if one is using the <object> element.
     A link inside an object works pretty much like a @longdesc link as it
     doesnt attract attention (not even a 'link stop' when using keyboard
     navigation) from sighted userse
5. longdesc is WCAG 2.0 Technique H45: 
     http://www.w3.org/TR/WCAG20-HTML-TECHS/H45


DESCRIPTION LINK PROBLEMS - GENERAL
  All the above solutions (except the @longdesc attribute, of course) share the
problem that it might be difficult for the user to know that the link actually
leads to a long description resource. This is a a problem for all users.
However, for a non-sighted user, this might be even more difficult to know. 
Thus all of the above linking methods  could benefit from a rel="longdesc" link
type.

Some of the 5 options above, might/may have been considered (by the WCAG 2.0
authors) to be more difficult to use for long descriptino purposes than others.
E.g the reason why a link wrapper is not discussed by WCAG 2.0 Techniques at
all, is probably because it is hard for a blind user to know whether the image
is a "image link", or whether it serves as an image enlargement button  or (not
so often) if  points to a long description. (Of course, it might also be
because describing such a method would compete with @longdesc.)

Some of the solutions suggested in G73 can be described as hacks. It involves
placing the link immediately adjactent to the embedded resource, hiding the
link in a very small image (1pixel wide et cetera), using a specific link text
("Long description of this resource") or using the anchor element as a
(visible) caption for the embedded resource, with information about the purpose
of the link inside the @title attribute.


DESCRIPTION LINK PROBLEMS - SPECIFIC
  * Simply placing the link nearby the embedded resource does not always make
the relationship clear - thus it should be possible to wrap the link around an
object, in order to draw a stronger connection, without risking confusing the
user.
  * However, when an object is  wrapped inside an anchor element, then it can
be hard for a screenreader user to know whether the link points to a
description of the <img>, or whether the @alt text of the <img> is meant as
link text.
  * When using an invisible/small <img> elment as link text container, then
what ARIA @role should the <img> element then have? Even if a suitable @role
can be found, it seems backwards to FIRST hide the link's visibility from
sighted user. AND THEN hide the fact that it is an image from the non-sighted
users via ARIA. 
  * Links might also be hidden via CSS. But regardles of how the link is
hidden, when navigating from link to link via the keyboard, such a link creates
a "stop", without any obvious purpose, for the sighted users (See Benjamin
Hawkes-Lewis comment 48 in bug 10455 
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10455#c48). @longdesc offers a
solution to this problem (it is unavaiable to keyboard navigation), as does
links inside the <object> element (links inside an object element are also not
available to keyboar navigation, as long as the embedded resource of the object
is available).
  * Asking authors to use a standardized text such as "Long description of
resource X" - if the text is supposed to be possibel to standardize, then
perhaps it would be more accessible and more language independent to allow user
agents and CSS to generate it? An anchor element without visible content would
also be simpler to hide. The content could be made visible when the element has
focus.
  * @longdesc is a good feature, but not even all screen readers support it. It
is unfortunate if authors, when they are looking for the semantics which
@longdesc posesses, are only able to choose a single feature - which doesn't
work universially. It is also unfortunate, should they choose to duplicate the
@longdesc as a link, that the link doesn't have the same semantics, In the
latter case,  it would also lead to annoying llink duplication, should the user
agent happen to support @longdesc.


HOW REL=LONGDESC  COULD BRING ENHANCEMENT:
  There is no perfect solution for all situations. Authors must continue to use
all the methos described above. However, for all of the 4 ways one may use a
link, the rel="longdesc" offers an enhancement: it gives the user agent the
possibility of notifying the user that a certain link is a longdesc link, and
thus create expectations for the user about how such links are implemented in
his/her browser. In particular, @rel="longdesc" offer a benefit for images that
are wrapped in a link and for image maps - these methods are not
recommeded/described as solution by WCAG 2.0 today, Thus, the most important
benefit of rel="longdesc", is that it allows authors to take into use a wider
arsenal links, including links that are programmatically associated with the
object. Using Object elemetns instead of <img>, or using image map, may have
its problems and may be considered difficult to use by many authors. However,
HTML5 should provide the necesary means for those that want to put even take
those methods into use.

A rel="longdesc" link may also have one particular feature which perhaps now
and then is an advantage against @longdesc: for a visited links, a screenreader
informs that the link has been visited, whereas a for a @longdesc link, I don't
believe that they offer such information. (At least JAWS did not seem to do
that, when I tested it.) Another advantage over @longdesc, when the
rel="longdesc" link is placed inside the fallback of an <object>, is that
whether it is visible/available to the user depends on the media type: in
textual browsers, the link in the fallback will be visible - the same should be
the case for screenreader. Whereas in a GUI browser, it will be hidden.

FINALLY: @longdesc VERSUS rel="longdesc"
  The two solutions would certainly compete with each others. But it would be a
good competition. Currently, @longdesc is not a success - it is often
misunderstood by authors and often "mystified". By specifiying how one can
recreate the *semantics* of @longdesc as a link, authors would also gain better
understanding for how @longdesc works, which again could make it more popular.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Received on Friday, 3 September 2010 02:38:08 UTC