<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML lang="en">
<HEAD>
<META http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2007. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<TITLE>Checking the accessibility of a webpage containing Flash content in the Flash Accessibility mode</TITLE>
<LINK href="base.css" rel="stylesheet" type="text/css" class="head">
</HEAD>
<BODY>
<H1>Checking the accessibility of a webpage containing Flash content in the Flash Accessibility mode</H1>

<ul>
<li><a href="#flashGuideline">Accessibility Guidelines for Flash Content</a>
<li><a href="#checkProcess">Checking Process for Each Check Items</a>
<OL>
<LI><a href="#textInfo">Provide Text Equivalents</a></LI>
<LI><a href="#siteInfo">Provide Context</a></LI>
<LI><a href="#voiceControl">Control Reading Order</a></LI>
<LI><a href="#animationControl">Control Animation</a></LI>
<LI><a href="#keyboardOP">Ensure Keyboard Access</a></LI>
<LI><a href="#progDisc">Progressive Disclosure</a></LI>
<LI><a href="#componentAcc">Enable Component Accessibility</a></LI>
<LI><a href="#caption">Provide Captions</a></LI>
<LI><a href="#controlAudio">Provide Control over Audio Playback</a></LI>
<LI><a href="#color">Use Color Wisely</a></LI>
<LI><a href="#color">Support Users with Low Vision</a></LI>
</OL>
</ul>

<P>
The ACTF simulates how webpages containing Flash content are read out by screen readers that visually 
impaired people use, and modifies any accessibility problems.
</P>

<H2 id="flashGuideline">Accessibility Guidelines for Flash Content</H2>
<P>
There are no established and well-known accessibility guidelines for Flash content, 
but Adobe&reg; has published a best practices document:
<blockquote cite="http://download.macromedia.com/pub/solutions/downloads/accessibility/">
<a href="http://download.macromedia.com/pub/solutions/downloads/accessibility/best_practices_acc_flash.pdf">Bob Regan, &quot;Best Practices for Accessible Flash Design&quot;, August 2005, Adobe Systems, Inc. (PDF file)</a>
</blockquote>
In this document the following 11 items are listed as best practices:
</P>
<OL>
<LI>Provide Text Equivalents</LI>
<LI>Provide Context</LI>
<LI>Control Reading Order</LI>
<LI>Control Animation</LI>
<LI>Ensure Keyboard Access</LI>
<LI>Progressive Disclosure</LI>
<LI>Enable Component Accessibility</LI>
<LI>Provide Captions</LI>
<LI>Provide Control over Audio Playback</LI>
<LI>Use Color Wisely</LI>
<LI>Support Users with Low Vision</LI>
</OL>
<P>
In this section how to check these items using ACTF's Flash Accessibility mode (and other modes) is described. 
Note that the Adobe document is only best practices and not guidelines. 
That is because it is hard to automatically check these items, and they mostly call for checks by human beings. 
However, the ACTF's Flash Accessibility mode efficiently supports people in performing these checks.
</P>

<h2 id="checkProcess">Checking Process for Each Check Items</H3>
<P>
The following checks are performed in the Flash Accessibility mode unless another mode is explicitly specified.
See <a href="workspaceFlash.html#mode">Switch Mode</a> to switch modes. 
Before starting check, the webpage to be checked should be displayed in the <b>Browser</b> view.
</P>

<H3 id="textInfo">Checking for &quot;1. Provide Text Equivalents&quot;</H3>
<UL class="space">
<LI>Accessibility checking automatically starts when the webpage is shown in the <b>Browser</b> view. 
The checking process requires a short time to be completed.

<LI>Analyzing automated accessibility checking result:
<BR>The results of the tests are shown in the <B>GUI Report</b> view (Figure 1). 
See <A href="checkGui.html#guiProblems">Problems reported in the GUI Accessibility mode</A> 
for the details of the problems. 
Currently, all of the problems are related to some lack of text information.
  <UL class="space">
  <LI>The entire webpage is the target of the check. 
  If you want to check just the Flash content in the page, select <b>Show Flash Items Only</b> in the <b>GUI Summary</b> view. 
  <LI>To change the type of problems reported (Error, Warning, or Information), Use the view menu (Ctrl+F10) to change 
  the display settings. The selected results are shown immediately. 
  <LI>When you select a line of the report, the problematical area is highlighted in the <b>Browser</b> view, 
  and the object icon in the <b>GUI Outline</b> view is also selected. Please verify the cause of the problem.
  <LI>For example, a button without text information is shown as &quot;&lt;number&gt; Button&quot; in the 
  <b>GUI Summary</b> view (Figure 2), which means the specified screen reader will read the button in this way. 
  It is shown as &quot;Nameless (button)&quot; in the <b>GUI Outline</b> view (Figure 3).
  </UL>
</uL>
<DIV class="figure">
<IMG src="images/flash/checkreport.png" alt=""><BR>
<SPAN>Figure 1. Automatic accessibility check results</SPAN>
</DIV>
<DIV class="figure">
<img src="images/flash/check_noalt_summary.png" alt="" class="border"><BR>
<SPAN>Figure 2. Buttons without text information (in GUI Summary view)</SPAN>
</DIV>
<DIV class="figure">
<IMG src="images/flash/check_noalt_outline.png" alt="" class="border-nopad"><BR>
<SPAN>Figure 3. Buttons without text information (in GUI Outline view)</SPAN>
</DIV>


<H3 id="siteInfo">Checking for &quot;2. Provide Context&quot;</H3>
<ul class="space">
<li>Verify that the content provides its own description and exposes its state in the <b>GUI Summary</b> and the 
<b>GUI Outline</b> view.
<LI>Use the <b>Refresh</b> function in either view when the application screen changes due to scrolling or some other operation.
<LI>If necessary, use the <b>Read Entire Text</b> function in the <b>GUI Summary</b> view to check the listenability with synthetic speech.
</ul>


<H3 id="voiceControl">Checking for &quot;3. Control Reading Order&quot;</H3>
<ul class="space">
<li>Verify that reading order of the content is appropriate in the <b>GUI Summary</b> view, 
where text content and order simulates the text that will be read aloud by MSAA-based screen readers.
<LI>Use the <b>Refresh</b> function in either view when application screen changes due to scrolling or some other operation.
<LI>If necessary, use the <b>Read Entire Text</b> function in the <b>GUI Summary</b> view to check the listenability using synthetic speech.
</ul>


<H3 id="animationControl">Checking for &quot;4. Control Animation&quot;</H3>
<ul>
<li>Verify that animated objects are invisible from the screen readers in the <b>GUI Summary</b> and the 
<b>GUI Outline</b> view.
<li>Perform a visual check in the <b>Browser</b> view for the visual check items such as blinking.
</ul>

<H3 id="keyboardOP">Checking for &quot;5. Ensure Keyboard Access&quot;</H3>
<ul>
<li>Verify that all operations can be performed by using the keyboard in the <b>Browser</b> view or in a standard browser.
</ul>


<H3 id="progDisc">Checking for &quot;6. Progressive Disclosure&quot;</H3>
<ul class="space">
   <li>Verify that user interface of the content offers a limited number of options at the top 
and more as the user drills down, using the <b>GUI Summary</b> or the <b>GUI Outline</b> view.
   <ul>
      <LI>Use the <b>Refresh</b> function in either view when the application screen changes due to scrolling or some other operation.
      <LI>If necessary, use the <b>Read Entire Text</b> function in the <b>GUI Summary</b> view to check the listenability using synthetic speech.
   </ul>
</ul>


<H3 id="componentAcc">Checking for &quot;7. Enable Component Accessibility&quot;</H3>
<ul class="space">
  <li>Find the Component objects in the <b>Flash Outline</b> view: 
  If you select a row in this view, the corresponding details are shown in the <B>GUI Properties</B> view. 
  Component objects are those whose <code>isUIComponent</code> property value is <code>true</code> (Figure 4). 
  The following hints will help in finding them:
  <ul>
    <li>If an instance name provided at authoring time is known, 
    look for objects with that name in the <b>Flash Outline</b> view.
    <li>If the instance name is not known, look for the objects in the highlighted rectangle in the <b>Browser</b> view when the entry is selected in the <b>Flash Outline</b> view.
  </ul>
  <li>Verify that an appropriate role is assigned to each Component: 
  The Component type (class) should correspond to the <code>className</code> property value.  
  In the example of Figure 4 the object belongs to <code>CheckBox</code> class. 
  Verify that an <b>accInfo</b> property exists and that its <b>role</b> subproperty 
  corresponds to the Component class in the <b>GUI Properties</B> view. 
  Figure 4 also shows an example where the role is set properly. 
  If a Component is not accessible, then its button icon appears and is marked with a red box as shown in Figure 5.
  When the correct role is set, a separate icon (for each Component type) is shown in the <b>Flash Outline</b> view (Figure 6). 
</ul>

<DIV class="figure">
<IMG src="images/flash/check_isui.png" alt=""><BR>
<SPAN>Figure 4. GUI properties of a Component</SPAN>
</DIV>
<DIV class="figure">
<IMG src="images/flash/check_component_bad.png" alt="" class="border"><BR>
<SPAN>Figure 5. Components with accessibility not enabled (in the Flash Outline view)</SPAN>
</DIV>
<DIV class="figure">
<IMG src="images/flash/check_component_good.png" alt="" class="border"><BR>
<SPAN>Figure 6. Components with accessibility enabled (in the Flash Outline view)</SPAN>
</DIV>

<H3 id="caption">Checking for &quot;8. Provide Captions&quot;</H3>
<ul>
<li>Verify that captions are properly provided in the <b>Browser</b> view or in a standard browser.
</ul>

<H3 id="controlAudio">Checking for &quot;9. Provide Control over Audio Playback&quot;</H3>
<ul>
<li>Manually verify the sound can be controlled in the <b>Browser</b> view or in a standard browser.
</ul>

<H3 id="color">Checking for &quot;10. Use Color Wisely&quot; and &quot;11. Support Users with Low Vision&quot;</H3>
<ul class="space">
<li>This is the only check item that is performed in the <b>Low vision</b> tab in the <b>HTML Accessibility mode</b>. 
See related topics for the Low Vision simulation.</li>
<LI>Based on the results of the checks, verify that color is not the sole means of providing information and that 
the content incorporates options that allow users to modify the text size of an application.
<LI>Check the content again when the application screen changes due to scrolling or some other operation.
</ul>





<H1 class="related">Related topics</H1>
<UL class="related">
<LI><A href="workspaceFlash.html">Exploring the Flash Accessibility mode</A>
<LI><A href="viewsFlash.html">Flash Accessibility mode panel</A>
<LI><A href="checkLv.html">Checking the accessibility and usability of a document in low vision tab</A>
</UL>

<P>
<A href="index.html">Go to Index</A>
<hr>
<DIV class="logo"><IMG src="images/logo.jpg" alt=""></DIV>
</P>

<p classname="trademark">
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
</p>

</BODY>
</HTML>
