Exploring Applications with the Utility Functions
JAWS provides you with a powerful set of utilities to quickly analyze an unknown application. These utilities are called the Script Utility Mode. When the Script Utilities are activated, the keyboard is placed in a shifted state. These utilities give you access to system level window information that you can use when scripting an unknown application. You can determine parent-child relationships, windows identifiers, and retrieve information about MSAA objects1.
Press CONTROL + WINDOWS + HYPHEN to turn on the Script Utilities. Press CONTROL + WINDOWS + HYPHEN a second time to turn off the Script Utilities.
Speaking Window Information
After activating the Script Utilities, you can speak various types of information about the active window. Press F1 to speak information about the window. By default, the window and related text are spoken when the utilities are activated for the first time.
You can cycle through the different pieces of information spoken by pressing F3. The pieces of information spoken are referred to as output modes. Each time you press F3 followed by F1, a different output mode is spoken.
Output modes include:
-
window type
-
window text
-
focus
-
control ID
-
class
-
type
-
subtype
-
real name
As you cycle through the various output modes, you can press F1 to hear JAWS speak the current output mode. Pressing JAWSKEY + HOME on the number pad will reset the output mode to say type and text. After the keystroke is pressed, JAWS announces "output mode is type and text." This keystroke eliminates the need to press F3 to return to the say type and text output mode.
You can also copy the spoken information to the clipboard. Press CONTROL + F1 to copy the spoken information to the clipboard. You can paste this information into your favorite text editor for review. Press JAWSKEY + F1 to have JAWS place the information in the virtual viewer.
Moving to Windows
In the windows program structure, there is a parent-child relationship between all windows contained within an application. A parent window can have several child windows. All child windows of a specific parent window are siblings of each other and said to be on the same logical level. Using the Script Utilities , you can access each of these windows and speak information about them.
::: {#moving-across-the-windows-hierarchy}
Moving Across the Windows Hierarchy
:::
Using the Script Utilities , you can access windows even if they are not accessible through the TAB and SHIFT + TAB keys when Script is turned off. Press TAB to move to the next window on the same level. You can continue to press TAB until JAWS speaks "No next window." This message indicates you have reached the last window on the same logical level.
You can move to the prior window on the same level by pressing SHIFT + TAB. You can continue to press SHIFT + TAB until JAWS speaks "No prior window." This message indicates you reached the first child window on the same level.
As you press TAB or SHIFT + TAB to move through the windows, JAWS automatically speaks the selected output mode. You can press JAWSKEY + TAB to hear the window type and text spoken by JAWS for the active window. If you are not sure where you began, press F5 to return the Script Utilities to the location of the PC Cursor.
::: {#moving-up-and-down-the-windows-hierarchy}
Moving Up and Down the Windows Hierarchy
:::
You can use the Script Utilities to move up and down the windows hierarchy. This functionality gives you the ability to determine if the window with focus has any child windows associated with it. It also gives you the ability to move to the parent of the active child window.
Press F2 to determine if the active window has any associated child windows. When a child window is found, the focus is moved to the child window and JAWS speaks the output mode information about the child window. You can continue to press F2 until JAWS speaks "Child window not found." This message indicates you are at the bottom of the windows hierarchy and no more child windows are present. Press TAB and SHIFT + TAB to determine if there are other child windows on the same logical level.
Press SHIFT + F2 to determine if a child window has an associated parent window. You can continue to press SHIFT + F2 until JAWS speaks "Parent window not found." This message indicates you have reached the top of the windows hierarchy. After you have reached a parent window, press TAB and SHIFT + TAB to determine if there are other windows on the same logical level. Remember that a parent cannot only have child windows, but it can be the child of another parent window. After reviewing the parent-child relationships, you can press F5 to route the Script Utilities to the active window. This essentially takes you back to the starting point from which you activated the Script Utilities.
::: {#determining-window-visibility}
Determining Window Visibility
:::
As you move across, up, and down the windows hierarchy you are moving to windows that may or may not be visible on the screen. You can use the Script Utilities to identify the windows that are visible and those that are not. Press F6 to hear the visibility status of the current window announced automatically by JAWS. Each time you move from window to window with this option turned on, JAWS will announce the visibility of the window immediately following the output mode information. You can turn this feature off by pressing F6 a second time. You can also announce the visibility status of the current window by pressing F7. This will announce the visibility status regardless of the state of the F6 visibility status toggle.
Searching for Text Attributes
Many applications use text attributes to convey important information. You can search for attributes such as: highlight, bold, underline, italic, and strikethrough using the Script Utilities . To select the text attribute for which to search, press F4. Each time you press this keystroke, JAWS announces the text attribute. Pressing F4 repeatedly will cycle through all text attributes. Once you have selected the text attribute, press GRAVE ACCENT () to begin the search. If the search finds text on the screen with the selected attribute, the JAWS cursor is placed on the text and it is announced. If the attribute is not found, then JAWS speaks "Next attribute not found". This indicates there is no text with the selected attribute. Pressing GRAVE ACCENT () subsequent times will move the JAWS cursor to the next occurrence of the attribute and announce the text. Pressing SHIFT + GRAVE ACCENT () will move the JAWS cursor to the prior occurrence of the attribute and announce the text.
As you press GRAVE ACCENT or SHIFT + GRAVE ACCENT, the JAWS cursor moves to the next or prior occurrence of the attribute, but will not stop at the last or first occurrence. Instead, the search begins over again and JAWS will not announce, "Next attribute not found."
You can press CONTROL + GRAVE ACCENT to immediately move the JAWS cursor to the location of the first occurrence of the selected attribute. You can also press SHIFT + CONTROL + GRAVE ACCENT to move to the location of the last occurrence of the selected attribute.
Retrieving MSAA Information
When the active cursor is on an MSAA object, you can use the Script Utilities to provide information about the object. However, you cannot navigate through MSAA objects using the Script Utilities. If you need to retrieve information on an object you must first activate that object by moving to it with either the JAWS Cursor or PC Cursor.
Press F9 to speak information about the object. By default, the object name is spoken when the utilities are activated for the first time. You can move to the next output mode by pressing F10. You can move to the prior output mode by pressing SHIFT + F10. Each time you press either F10 or SHIFT + F10 followed by F9, a different output mode is spoken. Output modes include: name, type, and subtype.
You can also copy the output mode information about the active object to the clipboard by pressing CONTROL + F9. You can then paste the information into a text editor for review after you complete your analysis of the application.
Script Utilities Keystroke Summary
The following utilities are helpful in finding all the information you need to know about controls, parent/child relationships, and text attributes.
::: {#tblr:table11-1}
| Keystroke | Description |
|---|---|
| JAWSKEY + H | Speak JAWS hot key shortcuts for the Script Utilities |
| F1 | Speak the selected mode of information. |
| F1, F1 (pressed twice in succession). | Spell the selected mode of information. |
| JAWSKEY + F1 | Display output mode information in the virtual viewer. |
| CONTROL + F1 | Copy output mode information to the clipboard. |
| JAWSKEY + CONTROL + F1 | Output Window Technical Info in the virtual viewer (You do not have to be in Script mode to use this command) |
| CONTROL + ALT + ENTER | Activates node capture and places all window information into the virtual Viewer |
| CONTROL + ALT + SHIFT + ENTER | Activates tree capture and places all the window information for child or parent windows into the virtual viewer |
| F2 | Move to the first child of the current active window and speak output mode information. |
| SHIFT + F2 | Move to the parent of the current active window and speak output mode information. |
| F3 | Select the next output mode. |
| SHIFT + F3 | Select the previous output mode. |
| F4 | Select the attribute search mode. Attributes include bold, italic, underline, highlight, and strikeout. |
| F5 | Initialize the Home-Row utilities to the window containing the active cursor. |
| F6 | Toggle auto speaking of window visibility status. When this option is turned on, the window's visible status is spoken as you move to it. |
| F7 | Speak the visibility status of the window currently referenced by the Home-Row utilities. |
| F8 | Speak the contents of the window currently referenced by the Home-Row utilities. |
| F9 | Speak the MSAA Object output mode information. The active object is indicated by the position of the active cursor. |
| JAWSKEY + F9 | Display the MSAA object output mode information in the virtual viewer. This is not available on output modes that return integers. |
| CONTROL + F9 | Copy requested MSAA object output mode information to the clipboard. |
| F10 | Select the next MSAA object mode. |
| F11 | Speak current output mode. |
| F12 | Speak current MSAA object output mode. |
| TAB | Move to next window and speak output mode information. |
| SHIFT + TAB | Move to prior window and speak output mode information. |
| JAWSKEY + TAB | Speak the window prompt and text for the window currently referenced by the Home-Row. |
| JAWSKEY + NUMPAD HOME | Set output mode to SayTypeAndText. |
| JAWSKEY + 7 | Activate the window-reclassification dialog. |
| JAWSKEY + NUMPAD MINUS | Route the Jaws or Invisible cursor to the window currently indicated by the Home-Row if it is visible on the screen. |
| GRAVE ACCENT | Move to the next text attribute. |
| SHIFT + GRAVE ACCENT | Move to the prior text attribute. |
| CONTROL + GRAVE ACCENT | Move to the first text attribute. |
| SHIFT + CONTROL + GRAVE ACCENT | Move to the last text attribute. |
| LEFT or RIGHT ARROW KEYS | Changes the value of pixel movement performed by the MouseLeft and MouseRight functions |
| UP or DOWN ARROW KEYS | Changes the settings for which special characters are spoken |
: Script Utility Keystrokes :::
Microsoft Active Accessibility (MSAA): A legacy Windows accessibility API that exposes UI element information (role, name, state, value, parent/child relationships) to assistive technologies. MSAA lets screen readers and other tools query and interact with application UI elements so they can present or manipulate those elements for users with disabilities.