| <!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>Exploring the Flash Accessibility perspective</TITLE> | |
| <LINK href="base.css" rel="stylesheet" type="text/css" class="head"> | |
| </HEAD> | |
| <BODY> | |
| <H1>Exploring the Flash Accessibility perspective</H1> | |
| <ul> | |
| <li><a href="#overview">Overview</a> | |
| <li><a href="#flashdomView">Flash Outline view</a> | |
| <li><a href="#guiprop">Content in the GUI Properties View</a> | |
| <li><a href="#flashdomLogview">Flash Proxy Logs view</a> | |
| </ul> | |
| <H2 id="overview">Overview</H2> | |
| <P> | |
| In the Flash Accessibility perspective, | |
| the <a href="workspaceGui.html#guiSummary">GUI Summary view</a>, | |
| <a href="workspaceGui.html#guiOutline">GUI Outline view</a>, | |
| <a href="workspaceGui.html#guiProperty">GUI Properties view</a>, | |
| <a href="workspaceGui.html#guiEvent">GUI Event view</a>, | |
| <a href="workspaceGui.html#guiReport">GUI Report view</a>, and | |
| <a href="workspaceGui.html#guiList">GUI Siblings view</a> | |
| are shown as in the GUI Accessibility perspective (Figure 1), but different information is shown in the <b>GUI | |
| Properties</b> view. See the following sections for details. | |
| In this perspective, the <a href="workspace.html#browser_view">ACTF Browser Editor</a>, | |
| the <a href="#flashdomView">Flash Outline view</a>, | |
| and the <a href="#flashdomLogview">Flash Proxy Logs view</a> are also available. | |
| </P> | |
| <DIV class="figure"> | |
| <IMG src="images/flash/ui.jpg" alt=""><BR> | |
| <SPAN>Figure 1. User interface of the Flash Accessibility perspective</SPAN> | |
| </DIV> | |
| <H2 id="flashdomView">Flash Outline view</H2> | |
| <P> | |
| The <b>Flash outline</b> view (Figure 2) is shown in the middle pane on the right side, | |
| where the runtime and internal structure of the Flash content is shown. | |
| </p> | |
| <H3 id="proxy">Proxy mechanism to obtain Flash internal structure</H3> | |
| <P> | |
| Flash internally uses a script language called ActionScript to move, transform, and control the visibility of objects. | |
| ActionScript is based on ECMAScript (aka JavaScript). | |
| This view shows the object's tree structure from the ActionScript perspective. | |
| Here are shown the properties of the objects such as type, value, and instance name provided by the developer, | |
| along with parent-child relationships. | |
| Flash developers can use this information to effectively modify their content and improve its accessibility. | |
| </P> | |
| <P> | |
| Although it is basically impossible for an external environment to access the internal structure of content unless | |
| the content author explicitly permits it, the ACTF make this possible by obtaining the Flash content via an | |
| internal proxy. | |
| </P> | |
| <P id="typeof"> | |
| Each row in this view is in the form of "[text information] name(type)". | |
| The name is an instance name provided by the developer, a field name, or a method name of an object, | |
| which is used to point at the object or property in ActionScript. | |
| The type is the return value of the ActionScript <code>typeof</code> operator applied to the object. | |
| The possible type values appears in the following list. | |
| See "ActionScript Language Reference", one of the Flash manuals for details. | |
| Icons also represent the types of the objects. | |
| <UL> | |
| <li>string | |
| <li>movieclip | |
| <li>object | |
| <li>number | |
| <li>boolean | |
| <li>function | |
| </UL> | |
| The text information of an object is shown enclosed with square brackets ("[" and "]"). | |
| </P> | |
| <p> | |
| Clicking on a row shows more details about the object in the <b>GUI Properties</b> view. | |
| See the <a href="#guiprop">next section</a> for details. | |
| </p> | |
| <DIV class="figure"> | |
| <IMG src="images/flash/flashdom.png" alt=""><BR> | |
| <SPAN>Figure 2. Flash Outline view</SPAN> | |
| </DIV> | |
| <H3 class="menudesc">Related functions</H3> | |
| <DL> | |
| <DT><IMG src="images/gui/refresh.gif" align="middle" alt=""> Refresh (Shift+F10)</DT> | |
| <DD>Refresh the view to an up-to-date state.</DD> | |
| <DT>Filter Non-informative Items (Ctrl+F10)</DT> | |
| <DD>Hide invisible (i.e. the type of number, string, function or boolean) properties and methods. | |
| Useful to display only the relationships between the displayed objects.</DD> | |
| <DT>Show Visual Structure (Ctrl+F10)</DT> | |
| <DD>Show the visual structure of a tree based on the inclusion relationships among the objects, | |
| instead of the actual parent-child relationships when the objects were created.</DD> | |
| <DT>Scan Windowless Flash (Debug Mode) (Ctrl+F10)</DT> | |
| <DD>If embedded Flash content has the <b>wmode</b> property set to <b>transparent</b> or <b>opaque</b> | |
| rather than <b>window</b> (or without <b>wmode</b> property), then screen readers cannot access that content. | |
| Turning this option "on" tries to find the Flash content even if <b>transparent</b> or <b>opaque</b> is specified. | |
| This scan sometimes takes a long time. Setting it to "off" shows the Flash content without scan.</DD> | |
| <DT>Show All Information (Debug Mode) (Ctrl+F10)</DT> | |
| <DD>All entities are shown, such as objects, properties, and methods and including the internal variables Flash uses. | |
| In addition, apparent parent-child relationships are shown as specified, even if there are circular references. | |
| <b>Warning:</b> Selecting <b>Expand All</b> with this option turned on will cause an infinite loop | |
| if a circular reference exists.</DD> | |
| <DT>Flash Proxy preferences... (Ctrl+F10)</DT> | |
| <DD>Show the <a href="viewsFlash.html#flashdom">Flash Proxy preferences</a>.</DD> | |
| </DL> | |
| <H2 id="guiprop">Content in the GUI Properties View</H2> | |
| <P> | |
| When a row is selected in the <b>Flash Outline</b> view, the details for that object are shown in the | |
| <b>GUI Properties</b> view (Figure 3) in the bottom-right corner, | |
| but the content is different from that which is shown in the GUI Accessibility perspective. | |
| The displayed properties depend on the kind of entry selected. | |
| Important possible properties and their meanings include: | |
| </P> | |
| <DIV class="figure"> | |
| <IMG src="images/flash/guiprop.png" alt=""><BR> | |
| <SPAN>Figure 3. GUI Properties view</SPAN> | |
| </DIV> | |
| <DL> | |
| <DT>wmode</DT> | |
| <DD>(Only for a top-level object.) The value of the <b>wmode</b> property was specified when the Flash content was | |
| embedded into the webpage.</DD> | |
| <DT>type</DT> | |
| <DD>The type of the object is the value returned when the ActionScript <code>typeof</code> operator | |
| is applied to the object. | |
| See <a href="#typeof">the previous section</a> for possible values.</DD> | |
| <DT>className</DT> | |
| <DD>Only shown when the value of <b>type</b> is <b>object</b>, it presents the class the object belongs to. | |
| Examples are <code>"Button"</code> for buttons, <code>"TextField"</code> for text fields, | |
| and <code>"Array"</code> for arrays.</DD> | |
| <DT>objName</DT> | |
| <DD>Apparent full path for the object. | |
| It may be different from the actual full path (<code>target</code> property value) due to the assignment | |
| of a variable object, which results in creating references to objects. | |
| Example: <code>_level0.button1.b1txt</code></DD> | |
| <DT>target</DT> | |
| <DD>Actual full path of the object, which is the value of the <code>target</code> property of the object. | |
| This represents the order of the creation of this object from the root object. Example: | |
| <code>_level0.button1.container.button</code></DD> | |
| <DT>depth</DT> | |
| <DD>The layer where the object is located, which is the return value of its <code>getDepth</code> method. | |
| An object with a larger <b>depth</b> value is shown in front of objects with smaller <b>depth</b>s.</DD> | |
| <DT>currentFrame</DT> | |
| <DD>The index of the frame where the object is located.</DD> | |
| <DT>Location</DT> | |
| <DD>The coordinates and size of the object. The tool draws a highlight rectangle based on this value, | |
| which may be displaced from the actual position for button objects | |
| (objects whose <b>type</b> is <b>object</b> and <b>className</b> is <b>Button</b>).</DD> | |
| <DT>value</DT> | |
| <DD>The value of the object. Shown when the object is of type <b>number</b>, <b>string</b>, or <b>boolean</b>.</DD> | |
| <DT>isUIComponent</DT> | |
| <DD>A value of <code>true</code> means the object is a "Component". See Flash manuals for details.</DD> | |
| <DT>isOpaqueObject</DT> | |
| <DD>A value of <code>true</code> means the object and its descendants can be treated as a single object. | |
| The tool will not attempt to traverse its descendants when searching in the <b>Flash Outline view</b>.</DD> | |
| <DT>isInputable</DT> | |
| <DD>A value of <code>true</code> means users are able to input data to this object. | |
| Example of inputable objects are text fields and check boxes.</DD> | |
| <DT>accInfo</DT> | |
| <DD>Accessibility information. The <code>_accProps</code> and <code>_accImpl</code> instances | |
| which are children of the object are shown. | |
| See Flash manuals for details about <code>_accProps</code>. | |
| See source code (LabelAccImpl.as, etc.) that comes with the Flash 8 authoring environment for details about <code>_accImpl</code>. | |
| Following are the child properties of <b>accInfo</b>: | |
| <DL> | |
| <DT>name</DT> | |
| <DD>Text information read out by screen readers</DD> | |
| <DT>description</DT> | |
| <DD>The detailed description of the object</DD> | |
| <DT>silent</DT> | |
| <DD>Set to <code>false</code> if the object is "invisible" to screen readers</DD> | |
| <DT>forceSimple</DT> | |
| <DD>Set to <code>true</code> if the object's descendants are invisible to screen readers</DD> | |
| <DT>shortcut</DT> | |
| <DD>The string for the shortcut key. Example: <code>Control+A</code></DD> | |
| <DT>role</DT> | |
| <DD>The string for the object's MSAA role. Example: <code>check box</code></DD> | |
| <DT>state</DT> | |
| <DD>The string for the object's MSAA state. Examples: <code>"focused"</code>, <code>"focused,checked,focusable"</code></DD> | |
| <DT>defaultAction</DT> | |
| <DD>The string for the object's MSAA default action. Example: <code>"Uncheck"</code></DD> | |
| </DL> | |
| </DD> | |
| </DL> | |
| <p> | |
| See <a href="workspaceGui.html#guiProperty">here</a> for other user interface elements. | |
| </p> | |
| <H2 id="flashdomLogview">Flash Proxy Logs view</H2> | |
| <P> | |
| The <b>Flash Proxy Logs</b> view is in the bottom-right pane (Figure 4). | |
| By default, the view is hidden, since the tab for <b>GUI Properties view</b> is selected. | |
| As <a href="#proxy">described earlier</a>, to accesses the internal structure of Flash content, | |
| ACTF uses its own internal proxy and obtains the Flash content via the proxy. | |
| The log messages for the actions of the proxy are shown in this view. | |
| </P> | |
| <P> | |
| In this view, each row corresponds to one log message from the proxy. | |
| Each entry has entries for <b>Message</b>, <b>ID</b>, <b>Source</b>, and <b>Time</b>. | |
| <DL> | |
| <DT>Message</DT> | |
| <DD>A log message output by the proxy</DD> | |
| <DT>ID</DT> | |
| <DD>The ID of the Flash content. | |
| The proxy can process multiple Flash objects in parallel, so a unique ID for each Flash object is used to identify | |
| the thread to which each log message belongs. | |
| The log messages for the general behaviors of the proxy do not have IDs.</DD> | |
| <DT>Source</DT> | |
| <DD>The Java™ class name in the proxy that issued the message.</DD> | |
| <DT>Time</DT> | |
| <DD>The time when the log message was issued.</DD> | |
| </DL> | |
| </P> | |
| <p> | |
| There are four types of log messages; a <b>trace log</b> without an icon, | |
| an <b>information log</b> with an <img src="images/gui/info_tsk.gif" align="middle" alt="alphabet I"> icon, | |
| a <b>warning log</b> with a <img src="images/gui/warn_tsk.gif" align="middle" alt="exclamation mark"> icon, and | |
| an <b>error log</b> with an <img src="images/gui/error_tsk.gif" align="middle" alt="bad mark"> icon. | |
| The trace logs are not shown by default. | |
| </p> | |
| <DIV class="figure"> | |
| <IMG src="images/flash/domlog.png" alt=""><BR> | |
| <SPAN>Figure 4. Flash Proxy Logs view</SPAN> | |
| </DIV> | |
| <H3 class="menudesc">Related functions</H3> | |
| <DL> | |
| <DT><IMG src="images/gui/clear.gif" align="middle" alt=""> Clear (Shift+F10)</DT> | |
| <DD>Clear all log messages.</DD> | |
| <DT><IMG src="images/gui/copy_edit.gif" align="middle" alt=""> Copy (Shift+F10)</DT> | |
| <DD>Copy whole lines into the clipboard.</DD> | |
| <DT>Show trace logs (Ctrl+F10)</DT> | |
| <DD>Show the trace logs which describe the detailed behavior of the proxy. | |
| This is mainly used to debug the proxy.</DD> | |
| <DT>Preferences... (Ctrl+F10)</DT> | |
| <DD>Show the <a href="viewsFlash.html#flashdom">Flash Proxy preferences</a>.</DD> | |
| </DL> | |
| <H1 class="related">Related topics</H1> | |
| <UL class="related"> | |
| <LI><A href="workspace.html">Exploring the HTML Accessibility perspective</A> | |
| <LI><A href="workspaceGui.html">Exploring the GUI Accessibility perspective</A> | |
| <LI><A href="checkFlash.html">Checking the accessibility of a webpage containing Flash content in the | |
| Flash Accessibility perspective</A> | |
| </UL> | |
| <P> | |
| <A href="index.html">Go to Index</A> | |
| <hr> | |
| <DIV class="logo"><IMG src="images/logo.jpg" alt=""></DIV> | |
| </P> | |
| <p class="trademark"> | |
| Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. | |
| </p> | |
| </BODY> | |
| </HTML> |