Accessibility Probe User's Guide


Table of Contents


Introduction

The Accessibility Probe (AccProbe) can be used to perform the following tasks.

AccProbe combines the functionality found in tools like Microsoft Inspect32, AccExplorer, and AccEvent, into one tool which works for both MSAA and IAccessible2 objects.

AccProbe is a stand-alone Eclipse Rich Client Platform (RCP) application but it does not require the use of the Eclipse development framework.

Accessibility

As an Eclipse RCP application, AccProbe itself is fully accessible. Examples of keyboard navigation within the AccProbe application are:

Go to Eclipse Accessibility for more information on keyboard navigation in an Eclipse application.


Download and Installation

AccProbe is provided as a zip file which contains all the components needed for it to run as a standalone Windows application in conjunction with the appropriate Java Runtime Environment. Installation instructions are as follows.

Windows Requirement

AccProbe is currently available for use only on the Microsoft Windows platform. For versions of Windows that support MSAA, see the list of supported platforms in the 'Getting Started' section of the MSAA documentation on the Microsoft Developer Network (msdn) site.

Obtaining the Required Java Runtime Environment

AccProbe currently requires a Java Runtime Environment (JRE) version 1.5.x installation or higher. If a JRE has been previously installed, check the version by opening a Command Prompt window (Start->All Programs->Accessories->Command Prompt) and invoking the command "java -version".

Installing AccProbe

AccProbe is available as a zip file. Obtain and install AccProbe as follows:

To run AccProbe, simply execute the "accprobe.exe" command. To find this command:

  1. Navigate to the directory created when the AccProbe zip file was "unzipped" and locate the 'accprobe' subdirectory.
  2. Navigate into this subdirectory and locate the AccProbe executable 'accprobe.exe'.

See the Launching AccProbe section for details on startup options for AccProbe.

IAccessible2 Installation Considerations

To use AccProbe with the IAccessible2 interface, the IAccessible2Proxy.dll must be registered. Two methods to do this are listed below. (Use the correct path to the folder in which AccProbe was installed.)

(If regsvr32 is not in your path, you may need to use the full path. Usually this is c:\windows\system32\regsvr32).


Launching AccProbe

AccProbe is launched by executing the 'accprobe.exe' application. No command line options are required; for most cases, the option defaults are sufficient.

AccProbe can also be executed with the command line arguments listed below. Note since AccProbe is an Eclipse RCP application, AccProbe can also be executed with any Eclipse command line arguments.


Using AccProbe

Upon launch, AccProbe displays three separate views: the Explorer View, the Accessibility Properties View, and the Event Monitor View.

Explorer View

The Explorer View presents a list of applications running on your Windows desktop at the time AccProbe was started. If a single window has two processes running in it (such as Lotus Notes or Lotus Symphony), it will load a separate window for each process. The node selected in the Explorer View drives the content of the Accessibility Properties View and the Event Monitor View.

Notes on using the Explorer View

Upon opening, AccProbe populates the Explorer View by reading all the top level windows of the current Windows desktop.

Accessibility Properties View

The Accessibility Properties View displays the accessibility properties of the window or control selected in the Explorer View. The Accessibility Properties View displays a set of top-level nodes called property groups. The following user selectable property groups are :

Some properties will display on a single line - these are generally primitive types. Other properties, including arrays, contain nested properties. To see the nested properties and their values, expand the node in the Accessibility Properties View.

All the displayed property groups are expanded by default, initially displaying the default properties for that group. The user can choose the property groups/properties to be displayed by selecting the Choose properties for display icon in the Accessibility Properties View toolbar. The Properties Filter dialog is displayed in which property groups and specific properties may be selected/deselected for display. In addition, the user may choose to display only properties that have a valid non-null value by checking the Filter properties with "null" values checkbox. This option is turned off by default so that all selected properties are displayed.


Event Monitor View

The Event Monitor View displays event information which is dynamically captured while GUI applications are running.


Viewing Options

There are several user selectable viewing options available in the main window toolbar 'Options' dropdown menu as discussed below.


Tracking Options

There are several user selectable tracking options available in the main window toolbar 'Options' dropdown menu when the Tracking option is selected. From the sub-menu, one the following methods may be selected for automatically locating a control in the Explorer View to examine.


Suspending Operations Options

All AccProbe operations may be suspended by pressing the Suspend all actions button in the main AccProbe window toolbar. This action stops all tracking, event monitoring and event processing. In addition, the Highlight Selected and Always on top options are disabled. Also the button text changes to Resume all actions. Pressing this button again causes Accprobe to return to its previous state.

In the suspended mode, the user will still be able to make changes to the Accprobe options/preferences with the exception of the Always on top option. This includes stopping event monitoring, modifying the event filters, and changing tracking options.


More on monitoring events

In the Event Monitor View, AccProbe displays accessibility event information which is dynamically captured while GUI applications are running on the desktop. This information can be tailored and filtered in a number of ways to allow selection of specific kinds of events and the information to be reported about the event. A subset of the GUI components in an application may be selected for monitoring. The Event Monitor by default captures events associated with all the processes. The user can also turn off Monitor all processes option to captures events specific to the top level window containing the component that is currently selected in the Explorer View. For example, if a menu bar for an application is selected in the Explorer View, the Event Monitor will capture events related to the entire top level window which contains the menu bar.

Choosing Events to Watch and Selecting Event Information to Display

The event monitor view pull-down menu (a small downward-pointing triangle icon) in the Event Monitor toolbar offers a number of functions for selecting events and displaying event data.

In addition to the above functions, the event display can be cleared by pressing the Clear the events list button, a rectangular icon with an X on top.

Controlling Event Capture and Display

The Event Monitor View toolbar contains buttons which control the capture and display of real-time event data as discussed below. Initially event capture is turned off and the Start capture of events and Pause capture of Events buttons are active.


Calling Methods with Parameters

The Accessibility Properties View can show only the properties of a control for which there are property "getter" functions. The non-getter methods which require parameters will have their name displayed as the property and a dummy string such as "<Double Click to enter parameters..>" as their value.

To invoke a non-getter method, double-click on the property in the Accessibility Properties View list. The Invoke Method dialog appears and presents a drop-down list of the methods defined by the selected object class. After selecting the method of interest, the input parameters entry fields (if any) are displayed. After entering any values, the method is invoked using the 'Invoke method' button. The results of the method invocation are displayed at the bottom of the dialog.


New Features in AccProbe release 1.0.0

The following features are new with AccProbe release 1.0.0.

  1. Implementation of new ia2 idl (version 1.1) which includes the new interfaces IAccessibleTableCell and IAccessibleTable2. The IAccessible2 interface will now display these two interfaces if present In order to test these two new interfaces, users will need to use the latest Mozilla Minefield browser (version 3.7a1pre).
  2. Added a "howFound" property to accessible elements , which lets the user know about the event information and hwnd information for that accessibleAdded a "howFound" property to accessible elements which lets the user know how the event information and "hwnd" information for that accessible was determined.
  3. All the event data such as hwnd, child id, object id, windowclass etc are available in Event Data column as a single property.

New Features in AccProbe release 1.2.0

The following features are new with AccProbe release 1.2.0.

  1. New version 1.2.0 in accordance with the new ia2 idl
  2. Changed BSD license to add copyright for linux foundation
  3. Miscillaneous bug fixes

New Features in AccProbe release 1.2.1

  1. Bug fixes for 492, 509 , 518, 523, 527, 528, 529, 531 and 534
  2. Added support for missing IAccessible properties such as put_accValue

New Features in AccProbe release 1.2.1.1

The following features are new with AccProbe release 1.2.1.1

  1. New build in accordance with the new ia2 idl version 1.2.1

Known Problems

There following are known problems when using AccProbe.

  1. When global tracking is disabled, rapidly selecting URL links on a Web page when using keyboard and mouse tracking modes may cause AccProbe to crash.
  2. Since app-by-app tracking is not dynamic, everytime the application changes (such as when a new page is loaded in a browser), the explorer view has to be refreshed.
  3. During App-by-app tracking, it often takes a long time for the focused object to be selected in the Explorer view. In such cases,it is advisable for the user to wait until the object is selected in Explorer view.
  4. Accprobe currently cannot display AccessibleChildren property for an Accessible Object if the child count is more than 1000. The child count is still reported in the AccessibleChildCount property. For Example, a symphony spreadsheet has more than 1000 children and hence AccessibleChildren will not be displayed.
  5. Accprobe will not track the keyboard or mouse movements during task switching process (when using Alt-tab) to make global tracking more accessible.
  6. Accprobe with Java 7 is causing SwingSet2 applications to crash. The crash happens when an out-of-context Focus event is fired from the taskbar part on the top of Swingset2 frame.
  7. Accprobe does not set SPI_GETSCREENREADER flag and hence does not display IA2 properties for Symphony1.3 which is dependent on this flag. Until this is fixed in Symphony, a workaround for Accprobe to display Ia2 data in Symphony1.3 is to have a screenreader such as Jaws/Inspect32/UnoInspect32 open.