- 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