<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>Juicy Studio</title>
	<subtitle>No artificial additives</subtitle>
	<link href="http://juicystudio.com/"/>
	<updated>2009-01-18T23:51:00Z</updated>
	<author>
		<name>Gez Lemon</name>
		<uri>http://juicystudio.com/</uri>
	</author>
	<id>tag:juicystudio.com,2009:1</id>
	<link rel="self" type="application/atom+xml" href="http://juicystudio.com/syndicate/juicyatom.xml"/>
	<rights>Copyright 2009, Juicy Studio</rights>

	<entry>
		<title>Purpose of the summary Attribute</title>
		<link href="http://juicystudio.com/article/purpose-of-the-summary-attribute.php" rel="alternate"/>
		<id>tag:juicystudio.com,2009-06-10:/purpose-of-the-summary-attribute.php</id>
		<updated>2009-06-09T21:33:03Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/purpose-of-the-summary-attribute.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Summary</h2>
<p>
The purpose of the <code>summary</code> attribute is to concisely describe the structure of a data table. The <code>summary</code> attribute <strong>is not intended</strong> to provide a long description for data tables.
</p>

<p>Author: Gez Lemon</p>

<h2>The <code>summary</code> Attribute</h2>
<p>
The purpose of the <code>summary</code> attribute is to provide a concise overview of the structure of data tables. <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0 covers this issue under <a href="http://www.w3.org/TR/2008/REC-WCAG20-20081211/#content-structure-separation-programmatic">guideline 1.3.1: Information and relationships</a>, where they have a success criterion for <a href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/H73">using the summary attribute to provide an overview of data tables</a>. The <code>summary</code> attribute is most useful with complex data tables, but can also be useful with simple data tables. Without a <code>summary</code> attribute, assistive technology users need to investigate the data table one cell at a time to build up a mental picture of the structure in their mind. With complex data tables, where columns and/or rows are grouped, building a mental picture can be particularly difficult for non-sighted users, whereas this information is visually obvious to sighted users. Sighted users of any ability are able to determine the structure of the table visually, whereas non-sighted users have no such luxury without the author providing a <code>summary</code> attribute to describe the structure of the data table.
</p>
<h2>Long Descriptions for Data Tables</h2>
<p>
The <a href="http://www.w3.org/TR/html401/struct/tables.html#adef-summary">HTML 4.01's definition of the <code>summary</code> attribute</a> uses the term <em>purpose</em> in its definition, which, along with the <code>summary</code> attribute's name, seems to have confused the purpose of the <code>summary</code> attribute.
</p>
<blockquote cite="http://www.w3.org/TR/html401/struct/tables.html#adef-summary">
<p>
This attribute [the <code>summary</code> attribute] provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.
</p>
</blockquote>
<p>
The <code>summary</code> attribute is not intended to provide a long description for data tables.</p>
<ul>
	<li>Long descriptions are better provided with markup, as markup provides a convenient mechanism for assistive technology users to interact with the content. Assistive technologies that support the <code>summary</code> attribute read it by default. Forcing a long description on assistive technology users is obviously not desirable.</li>
	<li>A long description benefits all user groups, and shouldn't be hidden within the table.</li>
	<li><abbr title="Web Accessibility Initiative">WAI</abbr>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> already has a mechanism to describe long descriptions that can be used with any object. For consistency, <code>aria-describedby</code> should be used to associate a long description with any object.</li>
	<li>The <code>summary</code> attribute serves a particular audience in providing an overview of the structure of the table that cannot be determined by the markup for the table alone, and is redundant for sighted users.</li>
</ul>
<p>
All sides of the debate agree that if a long description is required, the long description should be provided to all groups, not just screen reader users. The best mechanism to provide a long description is to provide a generic description of the table that is available to all users, and make the association using <abbr title="Web Accessibility Initiative">WAI</abbr>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym>'s <a href="http://www.w3.org/WAI/PF/aria/#aria-describedby"><code>aria-describedby</code> attribute</a>.
</p>
<h2>Misconceptions about the <code>summary</code> Attribute</h2>
<p>
Describing the <code>summary</code> attribute as a long description is dangerous, and almost guaranteed to result in the <code>summary</code> attribute being omitted from HTML5 and later versions. If the <code>summary</code> attribute is omitted from HTML5, user agent support for the attribute is likely to disappear from user agents, even though the attribute is currently very well supported. The <code>summary</code> attribute serves a particular audience; those that cannot determine the structure of the table visually.
</p>
<p>
The purpose of the summary attribute is to define the structure of data tables to non-sighted users where the relationship cannot be determined by user agents. User agents typically provide the number of columns and rows, but only an author can provide semantic information, such as the rows contain the time the bus leaves a particular bus depot, and the columns contain the destinations for each journey. That information is readily visually available, but a screen reader user would need to examine several cells before they can build that association in their minds. Structural information about how a data table is to be read visually can readily be provided by an author using the <code>summary</code> attribute.
</p>
			</div>
		</content>
	</entry>

	<entry>
		<title>Requiring the alt Attribute in HTML5</title>
		<link href="http://juicystudio.com/article/requiring-alt-attribute-html5.php" rel="alternate"/>
		<id>tag:juicystudio.com,2009-01-25:/requiring-alt-attribute-html5.php</id>
		<updated>2009-01-25T22:02:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/requiring-alt-attribute-html5.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Summary</h2>
<p>
I'm putting together a list of pros and cons about making the <code>alt</code> attribute required in <abbr title="HyperText Markup Language">HTML</abbr> 5. The following is a list of reasons for and against making the <code>alt</code> attribute required. What is your opinion?
</p>

<h2>Requesting Opinions about the <code>alt</code> Attribute</h2>
<p>
I <a href="http://twitter.com/gezlemon/status/1139666244">asked on Twitter</a> whether people thought the <code>alt</code> attribute should be a required attribute on the <code>img</code> element, along with the reason why. The purpose is to come up with a balanced list of pros and cons. The response has been quite good, although some people didn't provide a reason. The following is a summary of the reasons provided so far.
</p>

<h2>Reasons why the <code>alt</code> Attribute Should Be Required</h2>
<ul>
<li>If the image is decorative, it should be provided with <abbr title="Cascading Style Sheets">CSS</abbr>. If the image has content, then the <code>alt</code> attribute should be used or the content will not be perceivable to some users.</li>
<li>The <code>alt</code> attribute should be mandatory in <abbr title="HyperText Markup Language">HTML</abbr> 5 with a note pointing to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0 for guidance, as <abbr title="Web Accessibility Initiative">WAI</abbr> are the experts in this area.</li> 
<li>Not requiring the <code>alt</code> attribute allows broad, dangerous ideas of what should and should not have alt. Laziness will dictate.</li>
<li>Authors should be required to make a decision about alt text for every image.</li>
<li>Without alt text, assistive technologies rely on heuristics to determine the purpose of the image, which often results in gibberish &#8212; for example, announcing machine generated file names as the link phrase for links.</li>
<li>Bad alt text is much better than no alt text.</li>
<li>Requiring alt text encourages people in the right direction.</li>
<li>Because people don't always get the alt text correct, it is not a reason not to require it.</li>
<li>Requiring alt text creates a teachable moment.</li>
<li>The <code>alt</code> attribute should be required with an additional attribute to indicate when it hasn't been provided.</li>
<li>The alt attribute should be required for backward compatibility.</li>
<li>There has not been a convincing argument for what lack of alt should mean.</li>
</ul>

<h2>Reasons why the <code>alt</code> Attribute Should Not Be Required</h2>
<ul>
<li>Making the <code>alt</code> attribute required results in people providing nonsense values.</li>
<li>It's not reasonable to expect anyone to provide alt text when uploading several thousand photos all at once.</li>
<li>Making the <code>alt</code> attribute required does not mean it will be used correctly.</li>
<li>Provide the alt text with <code>aria-labelledby</code> is better than requiring the <code>alt</code> attribute.</li>
<li>Providing alt text should be considered best practice, not required.</li>
<li>Requiring alt text is merely philosophical without context.</li>
<li>The <code>alt</code> attribute should not be required, but flagged at validation as a warning.</li>
<li>There are exceptions where no value is possible.</li>
<li>There are illustrative images that do not require alt text.</li>
<li>Images on my website are for my family, and they don't need alt text.</li>
<li>The <code>alt</code> attribute should not required because authors get it wrong, in the same way they get other markup wrong, such as data tables without headings.</li>
<li>All that is required for accessibility is that the <code>alt</code> attribute may be used; it should not be required.</li>
</ul>


<h2>What do you Think?</h2>
<p>
Do you have reasons other than those already stated about whether or not the <code>alt</code> attribute should be required in <abbr title="HyperText Markup Language">HTML</abbr> 5? If so, either leave a comment here, or contribute to the <a href="http://search.twitter.com/search?q=%23althtml5">Twitter discussion</a> or <a href="http://twitter.com/gezlemon">respond to me directly on Twitter</a>. If you respond on Twitter, please use the <em>#althtml5</em> hashtag so that I can find your response.
</p>

			</div>
		</content>
	</entry>

	<entry>
		<title>Seven Things Meme</title>
		<link href="http://juicystudio.com/article/seven-things-meme.php" rel="alternate"/>
		<id>tag:juicystudio.com,2009-01-18:/seven-things-meme.php</id>
		<updated>2009-01-18T23:51:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/seven-things-meme.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Summary</h2>
<p>
<a href="http://eduspaces.net/stevelee/weblog/">Steve Lee</a> tagged me with the "Seven Things" meme, where you have to share seven facts about yourself and tag seven people to pick up the meme.
</p>
<h2>Rules of the Seven Things Meme</h2>
<ol>
	<li>Link to your original tagger(s) and list these rules in your post.</li>
	<li>Share seven facts about yourself in the post.</li>
	<li>Tag seven people at the end of your post by leaving their names and the links to their blogs.</li>
	<li>Let them know they've been tagged.</li>
</ol>

<h2>My Seven Facts</h2>

<ol>
	<li>I am an excellent guitarist. When I lived with my parents, our next door neighbour threw a brick through my bedroom window so he could hear better. He started to sing along, but was completely out of time and got all the words wrong.</li>
	<li>I can also play the piano, but not as well as I can play the guitar. I have the capacity to learn one song all the way through, but if I learn another, the previous song I learnt gets overwritten.</li>
	<li>My Dad is a drummer. I miss having a drum kit around. If I get a detached house, I will get a drum kit.</li>
	<li>I gave up smoking nearly three years ago.</li>
	<li>I can levitate, but not all at once.</li>
	<li>I can't play golf.</li>
	<li>I don't know seven people to tag with this meme.</li>
</ol>
<p>
I can only think of one person to tag with the seven things meme:
</p>
<ol>
	<li><a href="http://www.iheni.com/">Henny Swan</a></li>
</ol>

			</div>
		</content>
	</entry>
	<entry>
		<title>Twitter Focus</title>
		<link href="http://juicystudio.com/article/twitter-focus.php" rel="alternate"/>
		<id>tag:juicystudio.com,2009-01-12:/twitter-focus.php</id>
		<updated>2009-01-12T12:31:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/twitter-focus.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Summary</h2>
<p>
Considering the <a href="http://twitter.com/">standard Twitter website</a> is so basic, it's surprising it is so inaccessible. This <a href="http://juicystudio.com/services/twitter.user.js">Focus Twitter Greasemonkey script</a> puts the <em>favourite</em>, <em>reply</em> and <em>delete</em> links into the keyboard tab order to make it easier for keyboard-only users to use Twitter.
</p>
<h2>Contents</h2>
<ul>
	<li><a href="#twitteraccessibility">Twitter Accessibility</a></li>
	<li><a href="#notequiv">Similar Functionality; not an Equivalent</a></li>
	<li><a href="#findingsolution">Finding a Solution</a></li>
	<li><a href="#installscript">Installing the Greasemonkey Script</a></li>
</ul>
<h2 id="twitteraccessibility">Twitter Accessibility</h2>
<p>
There are many accessibility problems with Twitter, but by far the biggest issue is having links that can only be activated using a mouse. The links for making a particular tweet a favourite, the links for replying to a particular tweet, and the links to delete a tweet or direct message can only be activated using the mouse on the standard Twitter website. The favourite, reply and delete links are revealed when the user hovers the mouse over a tweet.
</p>
<p>
Hiding actions and only revealing them when the user moves the mouse results in a very poor user experience, as many mouse users will be unaware that the functionality exists at all. For keyboard-only users, the situation is far worse, as they could never possibly know the functionality exists.
</p>
<h2 id="notequiv">Similar Functionality; not an Equivalent</h2>
<p>
Twitter has a <a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75">set of commands</a> to use with Twitter updates, including a <code>@username</code> command to send a reply to a particular user. The syntax is <samp>@username message you want to send to the user</samp>. Whilst useful, there are two significant difficulties with this syntax:
</p>
<ul>
	<li>The reply is associated with the last tweet the user sent. If the user has sent tweets since the particular message a user intends to reply to, the reply is associated with the wrong tweet. By contrast, the reply is always associated with the correct tweet when using the reply button.</li>
	<li>The user has to physically type the username. As usernames aren't always simple to remember, the user sometimes has to copy and paste them. By contrast, the name is automatically put into the reply box with the correct syntax, and associated with the correct tweet when a user hits the reply button.</li>
</ul>
<p>
Using commands to manually send replies is not an equivalent for a button that does everything for the user.
</p>
<p>
There is also a <code>FAV</code> command to make a tweet a favourite. The syntax is <samp>FAV username</samp>, which will make the last tweet by the user a favourite. Like replies, the <code>FAV</code> command assumes the very last tweet from a user, and requires the user to type the username. 
</p>
<p>
Keyboard-only users cannot delete tweets, as there are no commands for deleting tweets or direct messages.
</p>

<h2 id="findingsolution">Finding a Solution</h2>
<p>
There are so many accessibility issues with Twitter that I originally wanted to build an accessible Twitter application. The problem is that I wouldn't have the bandwidth to run a server-side Twitter application, and Twitter doesn't currently use <a href="http://en.wikipedia.org/wiki/OAuth">OAauth</a>, which means I would have to ask users to trust me with their usernames and passwords. When discussing this on Twitter, <a href="http://boxofchocolates.ca/">Derek Featherstone</a> (<a href="http://twitter.com/feather">feather</a>) suggested writing a Greasemonkey script. This was a good idea, as it at least allowed the biggest accessibility problems to be addressed immediately.
</p>
<p>
The Greasemonkey script reveals <em>Favorite</em>, <em>Reply</em> and <em>Delete</em> links when appropriate for each tweet in the timeline. The link phrases have contextual information for assistive technology, but hidden visually, as the links are clearly grouped with the tweet to which they belong. I also removed the avatar from the keyboard tab order to reduce the number of redundant links for keyboard-only users, as the name immediately by the side of the avatar activates the same link. I have left the link in place so that mouse users have a larger target area, as they can click on the avatar.
</p>

<h2 id="installscript">Installing the Greasemonkey Script</h2>
<p>
If you don't already have Greasemonkey installed, you will need to <a href="https://addons.mozilla.org/en-US/firefox/addon/748">install Greasemonkey</a> in Firefox first. After installing the extension, select the <a href="http://juicystudio.com/services/twitter.user.js">Focus Twitter Greasemonkey script</a>, and you will be prompted to install the script. From then on, you will have access to reply, favourite and delete links using the keyboard.
</p>

			</div>
		</content>
	</entry>

	<entry>
		<title>Luminosity Contrast Ratio Main Colour Contrast Analyser</title>
		<link href="http://juicystudio.com/article/luminosity-contrast-ratio-main-colour-contrast-analyser.php" rel="alternate"/>
		<id>tag:juicystudio.com,2009-01-07:/luminosity-contrast-ratio-main-colour-contrast-analyser.php</id>
		<updated>2009-01-07T13:12:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/luminosity-contrast-ratio-main-colour-contrast-analyser.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Summary</h2>
<p>
The Accessibility Evaluation and Repair Tools (AERT) colour contrast algorithm was never a recommendation. As the luminosity contrast ratio algorithm is recommended with <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0, it is now the main method of testing colour contrast on Juicy Studio. 
</p>
<h2><abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> Suggested Algorithm</h2>
<p>
The 26th of April 2000 working draft for <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> contains a suggested algorithm to <a href="http://www.w3.org/TR/2000/WD-AERT-20000426#color-contrast">calculate the contrast of foreground and background colours</a>, based on the <abbr title="Luminance In-phase Quadrature">YIQ</abbr> colour space previously used by the <abbr title="National Television Systems Committee">NTSC</abbr> television standard:
</p>

<blockquote cite="http://www.w3.org/TR/2000/WD-AERT-20000426#color-contrast">
<p>
Color brightness is determined by the following formula:
</p>
<p>
<code>((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000</code>
</p>
<p>
Note: This algorithm is taken from a formula for converting <abbr title="Red, green, blue">RGB</abbr> values to <abbr title="Luminance In-phase Quadrature">YIQ</abbr> values. This brightness value gives a perceived brightness for a color.

</p>
<p>
Color difference is determined by the following formula:
</p>
<p>
<code>(maximum (Red value 1, Red value 2) - minimum (Red value 1, Red value 2)) + (maximum (Green value 1, Green value 2) - minimum (Green value 1, Green value 2)) + (maximum (Blue value 1, Blue value 2) - minimum (Blue value 1, Blue value 2))</code>
</p>
</blockquote>
<p>
A colour brightness difference of over <code>125</code> and a colour difference of over <code>500</code> is a pass using this algorithm.
</p>

<h2>Absence of an Official Algorithm</h2>
<p>
In the absence of any other published algorithm to determine colour contrast, I decided to use the proposed <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> algorithm to test for colour contrast. The algorithm was better than nothing, but there were problems with the algorithm failing colour combinations that were obviously good, and allowing colour combinations that were obviously poor. 
</p>
<p>
The biggest problem with the <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> algorithm is that the colour difference was too strict and barred obviously good colour combinations. To get around this restriction, Hewlett Packard lowered the threshold to 400. The algorithm also allowed colour combinations that were obviously not good, such as <code>#f80</code> and <code>#00f</code> (bright blue on orange). The colour combination is difficult to read, yet passes the <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> algorithm. The difference in brightness is 127 (threshold is 125), and the difference in colour is 646 (threshold is 500).
</p>
<h2>Luminosity Contrast Ratio</h2>
<p>
The Luminosity Contrast Ratio algorithm, developed by Gregg Vanderheiden, Dave Kelso, and Aries Arditi at the <a href="http://trace.wisc.edu/">Trace R&amp;D Center</a> has been adopted by <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0. 
<a href="http://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast">Success Criterion 1.4.3</a> requires the visual presentation of text and images of text has a <a href="http://www.w3.org/TR/WCAG20/#contrast-ratiodef">contrast ratio</a> of at least 4.5:1, except for the following:
</p>
<ul>
	<li>Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;</li>
	<li>Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.</li>
	<li>Logotypes: Text that is part of a logo or brand name has no minimum contrast requirement.</li>
</ul>
<p>
The luminosity algorithm provides much better results than the old <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> algorithm. The obviously poor colour combination of bright blue on an orange background (#f80 and #00f) yields a luminosity contrast ratio of <samp>3.59:1</samp> &#8212; a failure of success criterion 1.4.3, except for large text.
</p>

<h2>Colour Contrast Services</h2>
<p>
The old <abbr title="Uniform Resource Locator">URL</abbr> for the <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> colour contrast service on this website now redirects to the <a href="/services/luminositycontrastratio.php">luminosity contrast ratio analyser</a> (<abbr title="HyperText Transfer Protocol">HTTP</abbr> 301: moved permanently). The old <a href="/services/aertcolourcontrast.php">AERT colour contrast analyser</a> is still available, but through the new URL. The <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">Juicy Studio Accessibility Toolbar</a> and the <a href="https://addons.mozilla.org/en-US/firefox/addon/7313">Colour Contrast Analyser</a> Firefox extensions will continue to include the <abbr title="Accessibility Evaluation and Repair Tools">AERT</abbr> algorithm alongside the luminosity contrast ratio algorithm in the meantime.
</p>

			</div>
		</content>
	</entry>

	<entry>
		<title>Hello, World</title>
		<link href="http://juicystudio.com/article/hello-world.php" rel="alternate"/>
		<id>tag:juicystudio.com,2008-11-21:/hello-world.php</id>
		<updated>2008-11-21T14:53:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/hello-world.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>
Today is the 36th annual <a href="http://www.worldhelloday.org/">World Hello Day</a>.
</p>
<p>
The idea is to encourage world leaders to use communication rather than force to settle conflicts. Participate by simply greeting 10 people today.
</p>
<p>
Hello, world.
</p>
			</div>
		</content>
	</entry>

	<entry>
		<title>Examining WAI-ARIA Properties</title>
		<link href="http://juicystudio.com/article/examining-wai-aria-properties.php" rel="alternate"/>
		<id>tag:juicystudio.com,2008-10-09:/examining-wai-aria-properties.php</id>
		<updated>2008-10-09T15:39:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/examining-wai-aria-properties.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>
I have updated the <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">accessibility extension</a> to display all <acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> properties.
</p>
<h2>ARIA Properties</h2>
<p>
I've added a function to the toolbar to display all <acronym title="Accessible Rich Internet Applications">ARIA</acronym> roles and properties defined in a document. The properties are displayed in a new tab, along with the value of the property, the element the role is defined on, the parent nodes, and the markup fragment. The following is example output from running the function. 
</p>

<p>
<img src="/img/ariaprops.gif" alt="List of ARIA properties and their values, along with the parent nodes and markup fragment in a table." longdesc="/ld/ariaprops.html"/>
</p>

<p>
The properties functionality is a catch-all to report all ARIA properties. The toolbar can highlight live regions, document landmark roles, and general roles individually. 
</p>
			</div>
		</content>
	</entry>

	<entry>
		<title>Examining WAI-ARIA Roles</title>
		<link href="http://juicystudio.com/article/examining-wai-aria-roles.php" rel="alternate"/>
		<id>tag:juicystudio.com,2008-10-08:/examining-wai-aria-roles.php</id>
		<updated>2008-10-08T19:39:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/examining-wai-aria-roles.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>
I have updated the <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">accessibility extension</a> to display all <acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> roles.
</p>
<h2>ARIA Roles</h2>
<p>
<acronym title="Accessible Rich Internet Applications">ARIA</acronym> introduces the <a href="http://www.w3.org/TR/wai-aria/#Using_intro"> <code>role</code> attribute</a> to help define widgets, such as a tree, and define page structure, such as the navigation section. The accessibility toolbar displays the roles defined in a document in a new tab, along with the element the role is defined on, the parent nodes, and the markup fragment. The following is example output from running the extension.
</p>

<p>
<img src="/img/ariaroles.gif" alt="List of ARIA roles with the parent nodes and markup fragment in a table." longdesc="/ld/ariaroles.html"/>
</p>
<p>
At the moment, there isn't a check to ensure that the role provide is a valid role. The next version of this toolbar will highlight invalid role names.
</p>
			</div>
		</content>
	</entry>

	<entry>
		<title>Examining WAI-ARIA Document Landmark Roles</title>
		<link href="http://juicystudio.com/article/examining-wai-aria-document-andmark-roles.php" rel="alternate"/>
		<id>tag:juicystudio.com,2008-10-08:/examining-wai-aria-document-andmark-roles.php</id>
		<updated>2008-10-08T01:22:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/examining-wai-aria-document-andmark-roles.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>
I have updated the <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">accessibility extension</a> to investigate <acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> document landmark roles.
</p>
<h2>Document Landmark Roles</h2>
<p>
<acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> defines <a href="http://www.w3.org/TR/wai-aria/#roleattribute_inherits">document landmark roles</a> to help define the structure of a document. Document landmark roles have two purposes; they help assistive technology users orientate themselves within a document, and they provide a mechanism for users to navigate documents. The following document landmark roles are defined in ARIA.
</p>

<dl>
	<dt><code>article</code></dt>
	<dd>Content that makes sense in its own right, such as a complete blog post, a comment on a blog, a post in a forum, and so on.</dd>
	<dt><code>banner</code></dt>
	<dd>Site-orientated content, such as the title of the page and the logo.</dd>
	<dt><code>complementary</code></dt>
	<dd>Supporting content for the main content, but meaningful in its own right when separated from the main content. For example, the weather listed on a portal.</dd>
	<dt><code>contentinfo</code></dt>
	<dd>Child content, such as footnotes, copyrights, links to privacy statement, links to preferences, and so on.</dd>
	<dt><code>main</code></dt>
	<dd>Content that is directly related to or expands on the central content of the document.</dd>
	<dt><code>navigation</code></dt>
	<dd>Content that contains the links to navigate this document and/or related documents.</dd>
	<dt><code>search</code></dt>
	<dd>This section contains a search form to search the site.</dd>
</dl>

<p>
The following markup example specifies the document landmark roles for the <code>banner</code>, <code>navigation</code>, and <code>main</code> to create the page structure for a typical web document.
</p>

<pre><code>&lt;div role="banner"&gt;
...
&lt;/div&gt;
&lt;div role="navigation"&gt;
...
&lt;/div&gt;
&lt;div role="main"&gt;
...
&lt;/div&gt;</code></pre>
<h2>Document Landmark Roles Extension</h2>
<p>
The <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">accessibility extension</a> includes a menu item to investigate the document landmark roles. The extension draws an outline around the elements containing document landmark roles, along with the name of the landmark role. 
</p>
<p>
<img src="/img/navrole.gif" alt="Navigation list with a document landmark role of navigation"/>
</p>
<p>
This website contains document landmark regions for <code>main</code>, <code>search</code>, <code>navigation</code>, and <code>complementary</code>, so is ideal for testing this extension. Document landmark roles are an easy <acronym title="Accessible Rich Internet Applications">ARIA</acronym> win, so add them to your website and <a href="/contact.php">let me know the results of using this extension</a> so I can ensure it works properly.
</p>

<h2>Known issues</h2>
<p>
When document landmark roles are contained in other document landmark roles, the name of the role might be written over the top of other document landmark roles. This will be fixed, but is a low priority at the moment, as the scenario is rare. The final version of this extension is likely to present all roles in a separate dialog.
</p>
			</div>
		</content>
	</entry>

	<entry>
		<title>Examining WAI-ARIA Live Regions</title>
		<link href="http://juicystudio.com/article/examining-wai-aria-live-regions.php" rel="alternate"/>
		<id>tag:juicystudio.com,2008-10-02:/examining-wai-aria-live-regions.php</id>
		<updated>2008-10-02T19:02:00Z</updated>
		<content type="xhtml" xml:lang="en-gb" xml:base="http://juicystudio.com/article/examining-wai-aria-live-regions.php">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>
<a href="http://www.paciellogroup.com/">TPG</a> are working with the <a href="http://www.mozilla.org/">Mozilla</a> foundation to develop accessibility testing tools. Specifically, we're developing <acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym> tools, as well as improving accessibility of mainstream tools such as <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a> and providing <acronym title="Accessible Rich Internet Applications">ARIA</acronym> testing features in mainstream developer tools.
</p>
<p>
As part of that work, this Firefox extension examines <acronym title="Web Accessibility Initiative">WAI</acronym>-<acronym title="Accessible Rich Internet Applications">ARIA</acronym>'s Live Regions (this functionality will eventually be incorporated into a <acronym title="Web Accessibility Toolbar">WAT</acronym> for Firefox extension). The <a href="https://addons.mozilla.org/en-US/firefox/addon/9108">live regions extension</a> is currently available in a toolbar with the latest versions of the colour contrast analyser and table inspector extensions.
</p>

<p>
<a href="https://addons.mozilla.org/en-US/firefox/addon/9108"><img src="/img/acctool.gif" alt="Download the Juicy Studio Accessibility Toolbar"/></a>
</p>
<p>
I plan to add a set of accessibility auditing functions to this toolbar to make it easier for people to test websites for accessibility. At the moment, the toolbar consists of just three functions:
</p>
<ul>
	<li><a href="#lr">Live Regions</a></li>
	<li><a href="#cca">Colour Contrast Analyser</a></li>
	<li><a href="#ti">Table Inspector</a></li>
</ul>
<h2 id="lr">Live Regions</h2>
<p>
The live regions function adds elements with live regions defined into the tab order. When the elements are examined, a dialog is presented with 3 sections.
</p>
<ul>
	<li>The <acronym title="Accessible Rich Internet Applications">ARIA</acronym> markup</li>
	<li>A table containing the relevant <acronym title="Accessible Rich Internet Applications">ARIA</acronym> attributes</li>
	<li>An explanation of the <acronym title="Accessible Rich Internet Applications">ARIA</acronym> markup</li>
</ul>
<p>
<img src="/img/lr.gif" alt="Example dialog generated by the live regions function"/>
</p>
<p>
Visit <a href="http://test.cita.uiuc.edu/aria/live/index.php"><abbr title="Illinois Center for Information Technology Accessibility ">iCITA</abbr> live region examples</a> to see live regions in action.
</p>

<h2 id="cca">Colour Contrast Analyser</h2>
<p>
The colour contrast analyser examines the foreground and background colours of text nodes, and produces a report to determine if the contrast is adequate according to the <abbr title="Accessibility Evaluation Repair Tools">AERT</abbr> algorithm and the <abbr title="Web Conttent Accessibility Guidelines">WCAG</abbr>'s luminosity colour contrast algorithm.
</p>
<p>
<img src="/img/cca.gif" alt="Example tab generated by the colour contrast analyser"/>
</p>

<h2 id="ti">Table Inspector</h2>
<p>
The table inspector reveals the accessibility properties such as the summary and headers for table cells.
</p>
<p>
<img src="/img/ti.gif" alt="Example generated by the table inspector"/>
</p>
<h2>Download the Extension</h2>
<p>
<a href="https://addons.mozilla.org/en-US/firefox/addon/9108">Download the Juicy Studio Accessibility Toolbar</a> from Firefox Add-ons. Unfortunately, the extension is sandboxed at the moment, which means you have to have an account in order to download the extension. Hopefully, the extension will be reviewed by someone that understands the purpose of the extension and remove it from the sandbox section (although the reviewer of the colour contrast analyser decided to leave it in the sandbox).
</p>

			</div>
		</content>
	</entry>
</feed>
