|
|
|
By Christian Cohrs, Smart Clients, SAP Netweaver, SAP AG – June 7, 2005
For many years HTML-based user interfaces represented the solution of choice for accessibility, based on the belief that existing screen-reading software supports HTML better than any other platform.
In recent months it became apparent that this approach may no longer be valid for the rich user interfaces that come with modern enterprise applications. While these applications may also be rendered using an HTML page, they also use Javascript to turn sets of plain HTML elements into complex controls, way beyond the scope of the screen-reading software's generic HTML support.
We came to the conclusion that the best way to make a complex user interface accessible is to expose a custom object model, in which all aspects of the controls can be represented as required. This approach seemed especially attractive because the required object model already existed: The SAP GUI Scripting API.
SAP GUI Scripting was developed for SAP GUI during the 6.20 development phase. The primary focus was on automatic testing, and SAP's functional testing tool eCATT was the first user of the API. Today many third-party test tools are based on SAP GUI Scripting, as are custom solutions for desktop application integration.
SAP GUI Scripting allows the recording and playback of scripts that emulate end-user interaction with SAP GUI. At runtime an object model representing the user interface elements of SAP GUI is instantiated and can be accessed from external applications to change the state of an application and execute application functions.
A quick glance at the Scripting API shows that much of the information that a screen reader should make available to the user can be found in the API, so our recommendation for making SAP GUI accessible was to rely on SAP GUI Scripting to integrate screen-reading software with SAP GUI.
As the following graphic explains, the integration is done using an integration script. This script will access the SAP GUI Scripting object model at runtime to retrieve information about the currently focussed element and its environment, and send this to the screen reader for speech or Braille output.
Figure 1: Integration of SAP GUI and the screen-reading software using an integration script
This integration is feasible for screen-reader software that allows custom integrations to be done through scripts. A proof of concept was built using JAWS scripts (www.freedomsci.com/fs_products/software_jaws.asp). Support for other screen readers is planned.