<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Accessibility Tips &#187; images</title>
	<atom:link href="http://accessibilitytips.com/tag/images/feed/" rel="self" type="application/rss+xml" />
	<link>http://accessibilitytips.com</link>
	<description>A collection of tips, guidance and practical suggestions in developing accessible websites</description>
	<lastBuildDate>Sat, 02 May 2009 05:07:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Using fieldsets outside of forms</title>
		<link>http://accessibilitytips.com/2009/04/30/using-fieldsets-outside-of-forms/</link>
		<comments>http://accessibilitytips.com/2009/04/30/using-fieldsets-outside-of-forms/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 04:59:07 +0000</pubDate>
		<dc:creator>Isofarro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[fieldsets]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[legend]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[progressive enhancement]]></category>
		<category><![CDATA[rich media]]></category>
		<category><![CDATA[screenreaders]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://accessibilitytips.com/?p=27</guid>
		<description><![CDATA[The focus on using the most appropriate markup in JavaScript enhanced pages has raised an interesting problem about the use of form elements outside of a form. And using a fieldset to group these elements together is proving to be a very useful way of making them accessible. Using form elements outside of a form [...]]]></description>
			<content:encoded><![CDATA[<p>The focus on using the most appropriate markup in JavaScript enhanced pages has raised an interesting problem about the use of form elements outside of a <code>form</code>. And using a <code>fieldset</code> to group these elements together is proving to be a very useful way of making them accessible.</p>
<h3>Using form elements outside of a form</h3>
<p>Why would form elements appear outside of a <code>form</code>? Our typical use-case is an image carousel. In bare plain markup this is nothing more than an list of linked image elements. When we introduce JavaScript we can turn this plain list into an animated photo-gallery. A carousel of images a visitor can either let auto-scroll, or offer the visitor the option of manually scrolling through the images.</p>
<h3>The practical use of image carousels</h3>
<p>One particularly elegant use of scrollable image carousels is Flickr&#8217;s picture sorting tool. It allows a visitor to sort his uploaded photographs into sets and then annotate them either individually or in groups. The image carousel is a powerful metaphor for navigating through potentially thousands of images. </p>
<p>Another top notch demonstration of an image carousel is Apple&#8217;s Coverflow implementation which first surfaced as a means of scanning album covers in it&#8217;s much regarded iTunes media application.</p>
<h3>Using the appropriate markup</h3>
<p>It is clear we need buttons for navigating forwards and backwards through our list of images. Many developers use anchor links styled to emulate buttons, but a better method is to use a <code>button</code> element. The <code>button</code> element offers all the functionality of the simple link, plus you get the default button states for free. So semantically, a <code>button</code> element is the appropriate element to use as a button.</p>
<h3>Is it valid?</h3>
<p>The immediate retort I hear is that form elements only belong inside a <code>form</code>, because otherwise it isn&#8217;t valid HTML. Surprisingly, the HTML 4.01 Strict Recommendation doesn&#8217;t impose this limitation at all. Form elements are not limited to being children of a <code>form</code>. The <abbr title="Document Type Definition">DTD</abbr> also doesn&#8217;t impose this limitation, and an English translation of it goes something like this:</p>
<blockquote cite="http://www.w3.org/TR/REC-html40/sgml/dtd.html">
<p>All input related-elements (<code>input</code>, <code>select</code>, <code>textarea</code>, <code>label</code>, <code>button</code>) belong to a group called &#8216;Form Controls&#8217;. The Form Control group is just a subset of inline elements.</p>
<p>This means that anywhere an inline element can validly go, so too can a form control element.</p>
<p>There are some exceptions, for example you can&#8217;t place a form control inside of a <code>button</code> element.</p>
</blockquote>
<p>What is even more surprising is that the <code>fieldset</code> element also doesn&#8217;t have to be inside a <code>form</code>.</p>
<p>I suspect that allowing form elements and fieldsets to exist validly outside of a form isn&#8217;t an error by the HTML Working Group, but a particularly insightful forward thinking about the various alternate uses of these form input elements.</p>
<h3>Multiple video-player like widgets</h3>
<p>Many rich media pages on the web contain not just one single image carousel, but sometimes more than one. They also can contain similar enhanced widgets like video players, audio players, animation. </p>
<p>HTML5&#8242;s Canvas will probably be used as a means of visualising realtime data, like showing the spread of &#8220;swine flu&#8221; across the globe over time (with time annotated text-equivalents). It would be immensely useful to be able to move forward and backward through time and understand how the infection spreads at each time point. We would need buttons to allow a visitor to do that.</p>
<h3>Multiple remote controls</h3>
<p>We quickly land in a situation where we may have more than one set of video-player controls, each one controlling a different widget or collection of content. (Much like every living room having multiple remote controls, and it&#8217;s a perennial game to remember which remote controls which device).</p>
<p>On the web we run into a two fold problem for screen reader users in particular:</p>
<ul>
<li>It is difficult to determine which set of video player controls controls which group of content. Being adjacent to the actual content is sometimes not sufficient</li>
<li>In forms mode these buttons are perceivable to the visitor, and without the surrounding context it is difficult to understand the purpose of these buttons.</li>
</ul>
<h3>The forms mode issue</h3>
<p>It could be argued that buttons outside of forms should not be accessible in forms mode, but I find that argument has little merit because the buttons on the page still have a purpose to the user, and that equivalent should still be available to the screenreader user.</p>
<p>Otherwise we are not providing an equivalent experience. The interaction with video-player like controls doesn&#8217;t automatically mean that the output is visual only. We must not make that mistake.</p>
<h3>Grouping <code>button</code>s by <code>fieldset</code>s</h3>
<p>To improve the accessibility of groups of buttons we wrap each group of <code>button</code>s in its own <code>fieldset</code>. And every <code>fieldset</code> has to have a <code>legend</code> element that provides a succinct and short description of the collection of buttons.</p>
<h3>Carefully chosen <code>legend</code></h3>
<p>The <code>legend</code> text must be carefully thought out. It must be long enough to remove doubt about the purpose of the set of buttons that follow, but short enough for it not to be frustrating when prefixed before the description of every button.</p>
<h3>Dynamic <code>legend</code> text</h3>
<p>But at this point, the <code>button</code>s only make sense in a JavaScript context because the behaviour depends on JavaScript being available. Which means those buttons should added to the page by JavaScript, and consequently we can do the same for the <code>legend</code> and <code>fieldset</code> elements.</p>
<p>This adds another dimension to the <code>legend</code> text; it can be altered on the fly by JavaScript through a corresponding set of JavaScript events.</p>
<p>For example, when the visitor first focuses on an element inside of a <code>fieldset</code>, the default <code>legend</code> text can be an appropriate description of the purpose of these <code>button</code> controls. As the visitor then interacts with the <code>button</code>s the <code>legend</code> can be updated on the fly to present more pertinent information, like the date of the currently displayed epidemic growth map, or some state information like the user is seeing the <samp>first four pictures of twenty</samp>.</p>
<h3>Building on previous ideas</h3>
<p><a href="http://blog.ginader.de/">Dirk Ginader</a> used this technique of updating <code>legend</code> text on the fly very successfully in Yahoo Finance&#8217;s <a href="http://developer.yahoo.net/blog/archives/2009/01/accessible_converter.html">accessible currency converter</a>.</p>
<h3>Acknowledgements</h3>
<p>Once again, as with so many other fine accessibility innovations at Yahoo, the credit and initial idea of using <code>fieldset</code>s in this way was suggested by fellow Yahoo colleague, <a  href="http://twitter.com/DesignedByBlind">Artur Ortega</a>, one of the real practical experts in web accessibility. He is a fertile source of excellent and creative ideas of improving the accessibility of interactive and rich media components. A true gem of an engineer.</p>
]]></content:encoded>
			<wfw:commentRss>http://accessibilitytips.com/2009/04/30/using-fieldsets-outside-of-forms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Punctuating text-equivalents</title>
		<link>http://accessibilitytips.com/2009/01/02/punctuating-text-equivalents/</link>
		<comments>http://accessibilitytips.com/2009/01/02/punctuating-text-equivalents/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 19:09:33 +0000</pubDate>
		<dc:creator>Isofarro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[alt]]></category>
		<category><![CDATA[alt attribute]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[fallback]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[meaning]]></category>
		<category><![CDATA[null alt]]></category>
		<category><![CDATA[screenreaders]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[text-equivalent]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.wp-dev.isolutia.com/?p=22</guid>
		<description><![CDATA[When we have an image on a web page and that image conveys content, then we know it is important to provide a text equivalent of the content that image offers. The most typical (but not only) way of doing this is to add the text equivalent content in an alt attribute on that image. [...]]]></description>
			<content:encoded><![CDATA[<p>When we have an image on a web page and that image conveys content, then we know it is important to provide a text equivalent of the content that image offers. The most typical (but not only) way of doing this is to add the text equivalent content in an <code>alt</code> attribute on that image. The text content of this attribute should convey the equivalent information that the image contains.</p>
<h3>Altered meaning</h3>
<p>When a screen reader user, for example, reads the page all of the images are replaced with their text equivalents, and the resulting block of text is what the visitor gets. The two conceptually independent sources of text are merged into one block.</p>
<p>We need to consider the state of the merged content when that happens. Is the content still accurate, is the meaning and intention still clear.</p>
<p>When applying text equivalents to images we sometimes fail to consider how this new text will change the existing adjacent text content. The implications of this are:</p>
<ul>
<li>the content is not understandable</li>
<li>the content becomes unintelligible</li>
<li>the content changes meaning</li>
<li>the content loses it&#8217;s accuracy</li>
<li>the content becomes invalid or incorrect</li>
<li>the content conveys a message that was not intended</li>
</ul>
<h3>Unintentional humour</h3>
<p>Sometimes the end result is humourous. The late Dr. Alan Flavell in his notes on <a href="http://web.archive.org/web/20060518005758/http://ppewww.ph.gla.ac.uk/~flavell/alt/alt-text.html#howlers">alt attribute howlers</a> noted a real world example of two adjacent images, one was a picture of the page author in a canoe, and the other was a picture of a herd of buffalo. Two images of what interested the page author, and both with decent text equivalents. Unfortunately, in context, the block of text became: <q>Photo of a buffaloes in the water canoeing</q>, which was not quite the intended meaning.</p>
<p>Some simple punctuation would have avoided this unintentional joke.</p>
<h3>Punctuating or extra markup</h3>
<p>For this reason it is important to consider punctuating an image&#8217;s text-equivalent. A well-thought out comma or full stop, or parenthesis may be enough to protect the meaning and intention of existing text content from being changed when an image&#8217;s text equivalent is inserted where an image used to be.</p>
<p>If the text-equivalent can&#8217;t be written in a way that doesn&#8217;t hinder the meaning of the text content around it, then we need to consider moving the text-equivalent elsewhere; whether that means moving the image markup somewhere else, or leaving the image in place, and moving the text-equivalent to a more suitable spot (by using a null <code>alt</code> attribute and then inserting the text as a block of markup in the page).</p>
]]></content:encoded>
			<wfw:commentRss>http://accessibilitytips.com/2009/01/02/punctuating-text-equivalents/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Providing link text</title>
		<link>http://accessibilitytips.com/2008/03/04/providing-link-text/</link>
		<comments>http://accessibilitytips.com/2008/03/04/providing-link-text/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 05:25:44 +0000</pubDate>
		<dc:creator>Isofarro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[alt]]></category>
		<category><![CDATA[alt attribute]]></category>
		<category><![CDATA[fallback]]></category>
		<category><![CDATA[image links]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[link text]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[null alt]]></category>
		<category><![CDATA[readable links]]></category>
		<category><![CDATA[redundant links]]></category>
		<category><![CDATA[screenreaders]]></category>

		<guid isPermaLink="false">http://www.wp-dev.isolutia.com/?p=8</guid>
		<description><![CDATA[In websites offering news, it&#8217;s common for there to be a story title and an image both linking to the actual story. The design requirement, or even a tracking requirement, may force there to be two separate links, one for the story title, and one for the story image. Image links A common mistake is [...]]]></description>
			<content:encoded><![CDATA[<p>In websites offering news, it&#8217;s common for there to be a story title and an image both linking to the actual story. The design requirement, or even a tracking requirement, may force there to be two separate links, one for the story title, and one for the story image.</p>
<h2>Image links</h2>
<p>A common mistake is to correctly determine that the text equivalent for the image is already present on the screen, in the form of the story title, and go from there to inserting a null <code>alt</code> attribute (<code>alt=""</code>) for the image. When that image is the sole child of an anchor we are left with an anchor with no link text. And that&#8217;s an accessibility barrier.</p>
<p>The screenreader fallback when there is no link text for an image link is to extract something from the image&#8217;s <code>src</code> attribute &#8211; a <abbr title="Uniform Resource Locator">URL</abbr> &#8211; and this typically results in something unintelligble being read out by a screenreader.</p>
<p>What we need to do here instead is to populate the <code>alt</code> attribute with something that can be used as link text. In the case where the only appropriate (and succinct) text is the story title, it is fine to use that.</p>
<h2>Redundant links</h2>
<p>Its true that having two links with the same perceived link text linking to the same page is a redundancy, but this is much less of an evil than a text-less link. And much less of an accessibility barrier too.</p>
]]></content:encoded>
			<wfw:commentRss>http://accessibilitytips.com/2008/03/04/providing-link-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

