============================ GAIL README Last Updated: August 2, 2001 ============================ General Info ============ This README describes how to use the various test programs in the gail/tests directory. To run the various test programs described in this README, the test libraries must be built and installed. Running "make", then "make install" in the gail top-level directory will take care of this. Then do the following: 1. Set the environment variable GTK_MODULES to "libgail:lib" For example, for ferret, it would be "libgail:libferret" 2. Run the GTK+ test program specified. These test programs are found in the GTK+ build directory in the subdirectory called "tests". Most test programs will display output directly to the terminal window where the GTK+ test program was launched. Some test programs (testtable and testtext) will launch a test GUI program which allows more interactive testing. The test GUI has two windows. The first window is the "Test Control" window and the second window is the "Test Output" window. In the "Test Control" window, press the button(s) that corresponds to the tests to run and press the "Run Tests" button at the bottom of the screen. Some tests have associated text entry fields which become active when the button is toggled on. These text entry fields correspond to arguments that affect how the test is executed. They are pre-filled with default values but the user can change them if desired. The output from the tests is displayed in the "Test Output" window. testlib ======= Contains general purpose functionality that is used by the various tests. These include functions that find a specific widget/AtkObject in the test program, and functions used by tests that use the Gail Test GUI. ferret ====== Ferret is a passive in-process test tool for ATK and GAIL. Run a GTK+-2.0 application such as "testgtk", and ferret will display a window on screen. In this window accessibility information about the GTK+ widgets will appear as they receive focus. The ferret window has several tabs, one for each of the following ATK interfaces. Object Action Component Image Table Text Value Tabs that do not apply to the current widget in focus will be displayed as inactive. Clicking on an active tab will display information about the AtkObject accessed via the ATK API. In the Action tab the various actions are displayed as buttons. When a button is clicked, the action specified on the button's label is performed. If you have installed the "festival" speech synthesis system, running festival in server mode (festival --server) and turning on Ferret's Festival support will cause the following to happen: 1. AtkObject accessible names, roles, and keybindings will be spoken as they receive focus. 2. When the caret (cursor) is moved in a text field, the current line will be spoken, unless the caret is moved just a single character. In the later case, only the single character after the caret will be spoken. Festival support can be turned on by checking "Festival" in the menu, or by setting the environment variable FERRET_FESTIVAL prior to starting the test. By checking "Festival Terse" or by setting the environment variable FERRET_TERSE, only the name of the AtkObject will be spoken (and not the roles and keybindings). A magnifier can be turned on to enlarge the widget in focus by checking "Magnifier" in the menu, or by setting the environment variable FERRET_MAGNIFIER. This requires that the magnifier standalone code is running. Checking "Track Mouse in the menu or by setting the environment variable FERRET_MOUSETRACK causes ferret to display information about the widget that is under the mouse rather than the widget that has focus. The mouse is tracked via GtkWidget "enter_notify_event" signals, so flyweight objects are not tracked. Checking "Terminal Output" in the menu or by setting the environment variable FERRET_ASCII will display the information that is normally displayed to the ferret GUI window to the terminal screen. Checking "No ATK Signals" in the menu or by setting the environment variable FERRET_NOSIGNALS will cause ferret to ignore any ATK signals, and it will not update its display when such signals occur. testaction ========== This is a GTK+ module used to test the implementation of the ATK interface AtkAction, except for atk_action_do_action() in the GAIL library. It is normally used with the GTK+ test program testgtk. testbutton ========== This is a GTK+ module used to test the accessible implementation for buttons. It is normally used with the GTK+ test program testgtk. Set the TEST_ACCESSIBLE_NAME environment variable to have the test driver attach to a widget by widget name (compared via the gtk_widget_get_name function call). Set the environment variable TEST_ACCESSIBLE_AUTO and the program will execute the action defined for a GailButton once. testcombo ========= This is a GTK+ module used to test the implementation of the ATK action interfaces on GailCombo. It is normally used with the GTK+ test program testgtk by putting the focus in the GtkCombo in entry window. testcomponent ============= This is a GTK+ module used to test the implementation of the ATK interface AtkComponent in the GAIL library. It is normally used with the GTK+ test program testgtk. testimage ========= This is a GTK+ module used to test the implementation of the ATK interface AtkImage in the GAIL library. It is normally used with the GTK+ test program testgtk, but can also be used with testdnd when you want to test GtkPixmap. This modules pops up an extra dialog on startup , containing GtkArrows and a GtkImage. This dialog has to be closed before control is returned to main window. testmenuitem ============ This is a GTK+ module used to test the accessible implementation for menu items. It is normally used with the GTK+ test program testgtk. Set the TEST_ACCESSIBLE_NAME environment variable to have the test driver attach to a widget by widget name (compared via the gtk_widget_get_name function call). Set the environment variable TEST_ACCESSIBLE_AUTO and the program will execute the action defined for a GailButton once. testnotebook ============= This is a GTK+ module used to test the implementation of the ATK interface AtkSelection for GailNotebook. It is normally used with the GTK+ test program testgtk. testobject ========== This is a GTK+ module used to test the implementation of the ATK interface in atkobject.h in the GAIL library. It is normally used with the GTK+ test program testgtk. testoptionmenu ============== This is a GTK+ module used to test the implementation of the ATK interfaces for GtkOptionmenu. It should be used with the GTK+ test program testgtk and its file selection dialog. testpaned ========= This is a GTK+ module used to test the implementation of the ATK interface AtkValue for GailPaned. It is normally used with the GTK+ test program testgtk. It checks the setting of the position programmatically and that notification is received if the position is changed interactively. testprops ========== This is a GTK+ module used to test the implementation of ATK properties and property change handlers in the GAIL library. It is normally used with the GTK+ test program testgtk. To see the changing of the state ATK_STATE_SHOWING use menus in "progress bar". To see the changing of the state ATK_STATE_SENSITIVE uses "labels". To see changing of child and parent use resize check box in "panes". Set the TEST_ACCESSIBLE_NAME environment variable to have the test driver attach to a widget by widget name (compared via the gtk_widget_get_name function call). testselection ============= This is a GTK+ module used to test the implementation of the AtkSelection interface works for the GAIL library. It is normally used with the GTK+ test program testgtk and clicking on the menus option. It can also be used with the GtkCombo which can be accessed by clicking on the entry option. teststatusbar ============= This is a GTK+ module used to test that the text on the statusbar can be retrieved using GailStatusbar. It is normally used with the GTK+ test program testgtk and clicking on statusbar button. testtable ========= This is GTK+ module used to test the implementation of AtkTable interfaces. It can be used with GailTreeView, for example. It can be used with any of the following GTK+ test programs: testtreecolumns, testtreefocus, testtreesort, testtreeview, or treestoretest. Set the TEST_ACCESSIBLE_NO_PROPERTIES environment variable to not receive information about property values changing (like cell state changes). Set the TEST_ACCESSIBLE_NO_GUI environment variable to run the test without the GUI program. testtext ======== This is a GTK+ module used to test the implementation of AtkText and AtkEditableText interfaces on GailTextView. It is normally used with the GTK+ test program testtext started with a text file loaded. It can also be used with the GTK+ test program testgtk, and then click on the "entry" or "label" button. Set the TEST_ACCESSIBLE_NAME environment variable to have the test driver attach to a widget by widget name (compared via the gtk_widget_get_name function call). Set the TEST_ACCESSIBLE_DELAY environment variable to an integer and the test driver will attach to only a widget on the nth screen that is displayed. testtoplevel ============ This test exercises the AtkUtil functions. It accesses the atk_get_root() toplevel object, sets/removes global listeners, and displays the ATK implementation name/version. Set the TEST_ACCESSIBLE_DEPTH environment variable to control how deep the children of the toplevel object are displayed. The default is a depth of 2. Specifying a depth of -1 will show the complete hierarchy. testvalues ========== This is a GTK+ module used to test the implementation of AtkValue interface works for the GAIL library. GailProgressbar, GailSpinbutton and GailRange can all be tested using this module. GAIL README Authors =================== -Brian Cameron (brian.cameron@sun.com) -Bill Haneman (bill.haneman@sun.com) -Padraig O'Briain (padraig.obriain@sun.com)