Exploring the Flash Accessibility perspective


In the Flash Accessibility perspective, the GUI Summary view, GUI Outline view, GUI Properties view, GUI Event view, GUI Report view, and GUI Siblings view are shown as in the GUI Accessibility perspective (Figure 1), but different information is shown in the GUI Properties view. See the following sections for details. In this perspective, the ACTF Browser Editor, the Flash Outline view, and the Flash Proxy Logs view are also available.

Figure 1. User interface of the Flash Accessibility perspective

Flash Outline view

The Flash outline 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.

Proxy mechanism to obtain Flash internal structure

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.

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.

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 typeof 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.

The text information of an object is shown enclosed with square brackets ("[" and "]").

Clicking on a row shows more details about the object in the GUI Properties view. See the next section for details.

Figure 2. Flash Outline view
 Refresh (Shift+F10)
Refresh the view to an up-to-date state.
Filter Non-informative Items (Ctrl+F10)
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.
Show Visual Structure (Ctrl+F10)
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.
Scan Windowless Flash (Debug Mode) (Ctrl+F10)
If embedded Flash content has the wmode property set to transparent or opaque rather than window (or without wmode property), then screen readers cannot access that content. Turning this option "on" tries to find the Flash content even if transparent or opaque is specified. This scan sometimes takes a long time. Setting it to "off" shows the Flash content without scan.
Show All Information (Debug Mode) (Ctrl+F10)
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. Warning: Selecting Expand All with this option turned on will cause an infinite loop if a circular reference exists.
Flash Proxy preferences... (Ctrl+F10)
Show the Flash Proxy preferences.

Content in the GUI Properties View

When a row is selected in the Flash Outline view, the details for that object are shown in the GUI Properties 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:

Figure 3. GUI Properties view
(Only for a top-level object.) The value of the wmode property was specified when the Flash content was embedded into the webpage.
The type of the object is the value returned when the ActionScript typeof operator is applied to the object. See the previous section for possible values.
Only shown when the value of type is object, it presents the class the object belongs to. Examples are "Button" for buttons, "TextField" for text fields, and "Array" for arrays.
Apparent full path for the object. It may be different from the actual full path (target property value) due to the assignment of a variable object, which results in creating references to objects. Example: _level0.button1.b1txt
Actual full path of the object, which is the value of the target property of the object. This represents the order of the creation of this object from the root object. Example: _level0.button1.container.button
The layer where the object is located, which is the return value of its getDepth method. An object with a larger depth value is shown in front of objects with smaller depths.
The index of the frame where the object is located.
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 type is object and className is Button).
The value of the object. Shown when the object is of type number, string, or boolean.
A value of true means the object is a "Component". See Flash manuals for details.
A value of true 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 Flash Outline view.
A value of true means users are able to input data to this object. Example of inputable objects are text fields and check boxes.
Accessibility information. The _accProps and _accImpl instances which are children of the object are shown. See Flash manuals for details about _accProps. See source code (LabelAccImpl.as, etc.) that comes with the Flash 8 authoring environment for details about _accImpl. Following are the child properties of accInfo:
Text information read out by screen readers
The detailed description of the object
Set to false if the object is "invisible" to screen readers
Set to true if the object's descendants are invisible to screen readers
The string for the shortcut key. Example: Control+A
The string for the object's MSAA role. Example: check box
The string for the object's MSAA state. Examples: "focused", "focused,checked,focusable"
The string for the object's MSAA default action. Example: "Uncheck"

See here for other user interface elements.

Flash Proxy Logs view

The Flash Proxy Logs view is in the bottom-right pane (Figure 4). By default, the view is hidden, since the tab for GUI Properties view is selected. As described earlier, 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.

In this view, each row corresponds to one log message from the proxy. Each entry has entries for Message, ID, Source, and Time.

A log message output by the proxy
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.
The Java™ class name in the proxy that issued the message.
The time when the log message was issued.

There are four types of log messages; a trace log without an icon, an information log with an alphabet I icon, a warning log with a exclamation mark icon, and an error log with an bad mark icon. The trace logs are not shown by default.

Figure 4. Flash Proxy Logs view
Clear (Shift+F10)
Clear all log messages.
Copy (Shift+F10)
Copy whole lines into the clipboard.
Show trace logs (Ctrl+F10)
Show the trace logs which describe the detailed behavior of the proxy. This is mainly used to debug the proxy.
Preferences... (Ctrl+F10)
Show the Flash Proxy preferences.

Related topics

Go to Index

Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.