- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Tue, 24 Aug 2010 16:24:19 +0200
- To: Steven Faulkner <faulkner.steve@gmail.com>
- Cc: HTMLWG WG <public-html@w3.org>, HTML Accessibility Task Force <public-html-a11y@w3.org>
Steven Faulkner, Tue, 24 Aug 2010 12:15:12 +0100:
> remailing with example code sans extraneous role and tabindex code:
> an idea: using the summary /details elements to provide a long
> description for an image:
>
> - image goes in the <summary>
> - long description in <details>
I would add <details role="img"> as a requirement, whenever <details>
is used to represent an image. Justification below.
> - use of longdesc attribute on image provides indication to browser/AT
> that details/summary is being used for the specific purpose of
> providing a long description.
> - longdesc attribute with URL value (longdesc="URL") provided for
> backwards compatibility (suggest deprecated in HTML5)
I'll leave the deprecation problem till later ...
> - longdesc attribute without an URL "longdesc" be specced as an
> indicator that a long description is present when image is sole
> content of the summary element.
Making @longdesc a boolean like that, does not make sense to me, for
several reasons. One thing is that it would go against how it is
currently specced (and what about those bogus @longdescs out there?).
But just as imporant: to rely on @longdesc like that, would be to not
take advantage of <details role="img">,
If the <details/> element has role="img", then everything outside the
<summary/> element naturally becomes the long description of what is
summarized in the <summary/> element. Hence, there would be no reason
to introduce @longdesc as some kind of boolean signal - such a thing
would only be redundant. (And sometimes even incorrect - imaging if
both @alt and text outside the @alt makes up the <summary/> text.)
Thus, the only valid use of @longdesc should be for backward
compatibility for user agents which do not support the ARIA and
<details>.
> example code:
>
> <details>
> <summary ><img src="images/table.gif" alt="Average rainfall in
> millimetres by country and season." width="407" height="341"
> longdesc="details.html#table"></summary>
>
> <table border="1" id="table"><caption>Rainfall in millimetres by Country
> and Season.</caption><tr> <td></td><th scope="col">UK</th><th
> scope="col">Japan</th><th scope="col">Australia</th></tr><tr> <th
> scope="row">Spring</th><td>5.5</td><td>2.4</td><td>2</td></tr><tr> <th
> scope="row">Summer</th><td>4.5</td><td>3.4</td><td>2</td></tr><tr> <th
> scope="row">Autumn</th><td>3.5</td><td>1.8</td><td>1.5</td></tr><tr> <th
> scope="row">Winter</th><td>1.5</td><td>1.2</td><td>1</td></tr></table>
>
> </details>
Only thing I'm missing is <details role="img">.
[ snip ]
> resolves issues of:
>
> - providing *standardized* method for a programnmatically associated
> long description
> - provides it inline next to the image
> - only displayed on user request
> - does not clutter design (note example does not a disclosure triangle
> as is suggested for details/summary in spec, but this would not clutter
> desigh , i don't think)
> - deprecates current longdesc use, but provides for backwards compat
> and continued use of longdesc attribute
+1 for deprecation if an equivalent or better way can be specced - and
this method at least have potential.
> - details could conatin a.n <iframe> to display long descriptions
> external to the page.
> - long desc available to anybody who wants it.
Let us focus on the simplest replication of the @longdesc feature ...
Then this should be both back- and forward compatible:
<details role="img">
<summary><img longdesc="link" alt="Short desc"></summary>
<a href="link">long desc link</a>
</details>
(The only problem we have, is that <details/> is a block element. This
could be solved by wrapping it inside <object/>, though, provided that
HTML5 would allow what HTML4 allows.)
Regarding what you say about iframe: One of the @longdesc use cases in
HTML4, is providing information about an iframe element. However, what
you describe above, is how one could use an iframe as a long
description container.
While that is an interesting idea, how could the HTML4 use case be
solved via <details/>? (HTML4 assumes that it is a burden for users of
AT software want to know whether it is worth reading the iframe.)
Suggestion: the ARIA equivalent of role="iframe". I'm in particular
thinking about the situation when non-AT users do not need the
<summary/>. How about the following:
<details role="iframe">
<summary class="hidden-from-non-AT-GUI-users"
style="position:absolute;left:-100000cm;">
iframe description
</summary>
<iframe src="iframesrc">
<a href="iframesr">source doc</a>
</iframe>
</details>
--
leif halvard silli
Received on Tuesday, 24 August 2010 14:24:54 UTC