Not all interactions with the user can effectively occur via automatic event reporting and keyboard commands. For instance, having keys to configure all Perk and device settings is untenable, especially since each Perk can define new user options. Instead, the screen reader interface has GUI dialogs to enable more complex interactions with users.
The settings chooser allows the user to configure options for Perks, devices, the LSR platform, and the current user profile. The chooser has four tab panels that display the settings in each of these areas. The widgets of the first three panels are generated dynamically based on the options exposed by Perks, devices, and the LSR platform. The structure of the fourth panel is fixed at design time to show the contents of the active user profile.
All changes to settings take affect immediately in the user interface. Setting values are made permanent by activation of the or buttons. Setting values are discarded on activation of the button. The dialog closes immediately when is activated.
Two hotkeys are defined to enable quick navigation of the dialog. Alt-1 gives focus to the row of tabs for navigating to the four configuration panels. Alt-2 gives focus to the first focusable control in the current panel.
The Perk Settings tab panel has two primary areas. On the left, a list box shows the localized names of Perks that are either currently loaded or associated with the active user profile. Only Perks that have user configurable settings are shown. Selecting one of the names in the list causes the scroll panel on the right to update. This panel displays widgets for configuring the settings for the selected Perk. See Section 5.1, “Perk Settings” for a list of the settings provided by the core screen reader Perks.
The settings for a given Perk name effect all instances of that Perk. In other words, the settings are global.
The Device Settings tab panel also has two primary areas. The root level of the tree on the left shows the localized names of devices that are currently loaded. Selecting one of the names in the list causes the panel on the right to update. The panel contains widgets for configuring the default settings for the selected device.
If a device supports fine-grained configuration of output, a second level of tree nodes appears under the device name. The second level items have localized names for the semantic tags supported by LSR. When selected, the panel to the right updates with widgets for configuring settings for the selected tag. For instance, say a user selects the Color node under a speech device. The panel on the right should show options for changing the voice characteristics used when speaking color information.
![]() | Note |
|---|---|
Semantic tags are not configurable, only default device settings. |
The available settings are defined by the capabilities of the device being configured. See Section 5.2, “Device Settings” for a list of the settings provided by typical screen reader devices.
The System Settings tab panel shows widgets for options made available by the LSR platform itself, independent of any Perks or devices. These options are typically for developers or advanced users, and effect how the LSR platform scripting API methods behave. See Section 5.3, “System Settings” for a list of the settings provided by the LSR platform.
The profile tab panel shows the available extensions which the user can set to load automatically. The tab is labeled with the name of the active profile for reference (e.g. user). The profile panel has four sub-tab panels representing the four kinds of LSR extensions: Perks, devices, monitors, and choosers.
The user may install any kind of extension by activating the button. The table of extensions of the given type is automatically updated to show the newly installed item. However, the actual install does not happen unless the user activates the or button. The new extension is available only to the current user, not to all users of the operating system. It defaults to loading automatically in the current user profile.
The user may uninstall any extension previously installed by this user only by activating the button. The table of extensions of the given type is automatically updated to show the newly installed item. However, the actual uninstall does not happen unless the user activates the or button.
The user may activate the button to restore the current profile to a reasonable default state. All extensions packaged with the LSR platform will be returned to their default configuration. Extensions installed by the user will not be uninstalled.
![]() | Tip |
|---|---|
The install, uninstall, and reset buttons are disabled. |
The Profile Perks sub-panel shows a table of installed Perks. The names of the Perks are given in the first column along with their descriptions in the second column. Perks with check marks next to their names are loaded automatically either when every application starts or when a particular application starts. Exactly when a Perk should load is determined by its author.
![]() | Note |
|---|---|
The user can override the author's association at the command prompt. See |
The Profile Devices sub-panel shows a table of installed devices. The first column enumerates their names and the second column their descriptions. LSR attempts to load devices with check marks next to their names at start-up, in top-to-bottom order. The user can change the attempted load order using the and buttons. The load order is executed immediately when either of the or buttons is activated.
![]() | Important |
|---|---|
A device loads only if all of the services it provides are not already provided by one or more devices earlier in the load order. For instance, even if three speech devices are checked, only the first device to successfully initialize will be loaded. |
The Profile Monitors sub-panel shows a table of installed monitors and their descriptions. Monitors with check marks next to their names are automatically loaded at start-up. Monitors are immediately loaded or unloaded when either of the or buttons is activated.
The Profile Choosers sub-panel shows a table of installed choosers and their descriptions. The table is read-only since choosers do not load automatically, only under the direction of an accompanying Perk.
The help chooser gives usage and accessibility information about the widget at the pointer POR and a description of the features provided by all Perks currently loaded for the active application. This information is separated into the four tab panels described below.
![]() | Tip |
|---|---|
The help chooser is not implemented. |
This panel displays instructions on how to use a known GUI control in a standard text box along with an example of the control. For example, if the pointer is on a check box when the help dialog is shown, something like the following text is provided:
A check box represents a setting that is either true or false. When it is "checked," it is true. When it is "unchecked," it is false. Press the Spacebar to switch between checked and unchecked. Press Tab or Shift-Tab to navigate to the next or previous control outside of the check box.
If the control is of an unknown type, the panel shows text stating this fact. In this case, the panel contains no example widget.
This panel shows a text description of the accessibility information available for a GUI widget in a standard text box along with an example of the control. For example, if the pointer is on a radio button belonging to a group of three, something like the following text is given:
The role of this widget is radio button. Its accessible name is blank. Its description is blank. It has the state checked. It has a label "Two" and is a member of a group of three radio buttons.
If the control is inaccessible, the panel contains text stating this fact.
The commands panel contains a table describing the commands provided by the Perks loaded on the current application and their bindings to input gestures (e.g. keyboard combos, Braille device buttons). The first column of bindings is generated automatically by querying the loaded Perks. The second column of descriptions is generated by accessing the descriptions of the Tasks registered in the loaded Perks and bound to input gestures.
This panel contains a table with the names of the Perks loaded for the active application and help on using the features of those Perks in the active application. The first column is populated with the names of Perks having help strings. The second column shows the help strings obtained by querying the loaded Perks. Perks not having help strings are not listed. For example, a Perk for the Firefox web browser might suggest the user read the page using the review keys, and also explain how to navigate by elements like headers, form controls, links, and so on.
The search chooser prompts the user to enter a string to locate in the active view. The dialog contains a single line text entry box, a button, and check boxes for matching case and wrapping search. When the dialog is shown for the first time, text entry field is empty. When shown again after a search, the text entry field contains the last string entered for this view. The text of the last search string is selected.
![]() | Tip |
|---|---|
The last search string is not presented when the dialog is opened again. |
The Perk chooser gives the user control over which scripts are currently loaded for the active application. The table lists the names and descriptions of all installed Perks. Perk names with a check next to them are set to load or remain loaded on the application named in the window title. Perk names without checks are set to unload or remain unloaded. The actual loading and unloading of Perks occurs when the or button is activated.
The order of the Perks in the table determines the order in which loaded Perks handle events. The Perk at the top of the list handles events first while the Perk at the bottom of the list handles events last. The user can change the ordering of the Perks using the and buttons. Only Perks set to load may be raised and lowered. Moving unloaded Perks is meaningless.
When a Perk is checked, it is immediately raised to the top of the list. When it is unchecked, it is lowered below the last checked Perk.
The hotkey Alt-1 is defined to quickly give focus to the table of Perks from anywhere in the dialog.
The developer dialogs are intended to assist LSR script writers in debugging their custom Perks. Three monitors provide a running log of important events while the view chooser gives a developer the chance to explore and test the accessible components of an application.
All three of the developer monitors have nearly the same layout. A large, read-only text area practically fills the window. All events are logged into this area in plain text. A check box for enabling and disabling logging resides above the text area. When unchecked, all log messages are discarded. Regardless of this setting, no events are logged when an event monitor window is active. The menu has options for clearing and saving the current log. The menu has checkable items for enabling or disabling the kinds of events that are logged.
The event monitor logs the raw accessibility events occurring on the desktop. The menu has items for all of the major event types that can be logged. The format of each entry in the log is the following:
%(event type)s(%(event data)s)
source: [%(accessible name)s|%(accessible role)s]
application: [%(accessible name)s|%(accessible role)s]
![]() | Note |
|---|---|
The raw event log never includes events generated from LSR itself. |
The task monitor logs the execution of Tasks registered in Perks to handle events. The menu has items for all of the known Task types. The format of each entry in the log is the following:
%(task type)s(%(task layer)s):
%(event specific data)s tier: %(tier name)s%(Task name)s in %(Perk name)s.
propagate: %(propagate event)s
...
Additional reports of Tasks executing in response to events appear under the first one at the same indentation level. Tasks explicitly executed appear indented under the Task that executed them. Tasks that chain to other Tasks appear indented and in color when they are executed.
The I/O monitor logs all content, semantic tags, and commands sent to an output device as well as input gestures on input devices. The menu has items for all of the known kinds of input and output commands. The format of the I/O log differs from that of the other monitors. In keeping with the natural flow of output utterances, all information is logged on a single line. Line breaks are inserted after stops or when I/O from a different device needs to be interleaved in the log.
Content sent to a device is written as plain text. Stop and talk commands, index markers, filenames, and input gestures are wrapped in braces. Talk commands also include the name of the semantic tag associated with the preceding content. The templates for each of these items are as follows: