You are here: Mozilla Accessibility QA testcases >
Object inspection Testing
Accessibility QA Test Case: Object inspection Testing
Firefox user interface on Microsoft Windows: Examine MSAA properties
for all user interface elements.
Description
This test case describes the approach and methods used to test the
Microsoft Active Accessibility (MSAA) properties
for user interface elements.
MSAA provides
programming interfaces that allow an application to share
information about user interface elements with assistive technology
applications, such as screen readers.
User interface elements include controls, objects, icons, images, and
text. In other words, any part of the user interface with which the user
interacts, either with the mouse, or with the keyboard. Any information
provided in the user interface should also be available via a program
interface, in this case, the
MSAA interface. This
allows an assistive technology, such as a screen reader, to provide
the needed information to users who cannot see the screen.
Here are examples of the types of information that must be provided for
every user interface element in an application:
- What type of control currently has keyboard focus? (Is it a push
button, check box, text input field?)
- What function will the control provide to the user? (Is it a password
entry field? Is it a button to let me print the page?)
- Is there a label or text associated with the control, explaining the
function?
- Is there a value or state associated with the control? (Did I already
type something into a text entry field, or was a default value inserted for
me already? Is the check box checked or unchecked?)
- Is there a keyboard shortcut associated with the control?
- Is there anything else I need to know about it that is not
obvious?
This test case describes which MSAA properties should be analyzed to
verify the above information is available.
This test case is based on IBM Software Accessibility Checklist version
3.5.1, checkpoint
2.2, checkpoint
2.3, checkpoint
2.4, and checkpoint
4.1.
Scope of test
The goal is to test every user interface element (text, graphics, and
control elements) in every menu pulldown option and dialog. All dialogs in
the Firefox install program, the Firefox application (browser), and the
Firefox uninstall program should all be tested.
Note: The tools and accessibility properties discussed in
this test case are specifically for the Microsoft Windows operating system
and the MSAA interface.
Tools required
- Microsoft Inspect Objects: inspect32.exe
Test Case Instructions:
- Start Inspect Objects (inspect32.exe) and Firefox.
- It is best to start the object inspection tool (inspect32) before
starting Firefox. This allows you to see where the default keyboard
focus is placed when the application starts.
- Use the keyboard to navigate through all menu options and dialogs
provided by the software user interface. (See the appendix at the end of
this file for keyboard navigation techniques.)
Move keyboard focus to each user interface element in every menu and
dialog.
- User interface elements are any controls, objects, icons, images
provided in the user interface. Examples are push buttons, check boxes,
radio buttons, lists and list items, combo boxes, text entry fields,
spin boxes... In other words, any user interface element that a user is
expected to interact with, either with the mouse, or with the
keyboard.
- For each user interface element, verify that all information that is
provided visually is also provided through the available MSAA properties.
There are many properties defined in MSAA, but only a few are analyzed for
this test. Observe the following MSAA properties displayed in the Inspect
Objects output window. Use your judgment to decide if the necessary
information is provided for each user interface element.
- NAME - Every element must have a
non-null Name property. Then name is usually the same as the text that
is visually associated with the user element, and should reflect the
meaning of the element, from the user's perspective. For example, the
name should be the same as the label associated with a text input
field, radio button, or check box. It should be the same as the button
text, for push buttons. If you have an item highlighted in a menu
pulldown, the name should be the same as the highlighted text.
- ROLE - Every element must have a
non-null Role property. The role should reflect the user's perspective
of the type of element that has focus. For a push button, the role
should be "Push Button". For a radio button, the role should be "Radio
Button". A list item should have a role of "list item", and so on.
Custom controls should have a role that reflects the function of the
control; if it works like a combo box, the role should be "combo box",
no matter how the custom control is implemented.
- STATE - The State property should reflect the
current state of the element, if appropriate. For example, a check box
or radio button might have a state of either "checked" or "unchecked".
In this case, both states should be tested with Inspect Objects, to
verify each state is properly reflected through the MSAA interface. Use
your judgment to decide if each element has associated states that
should be provided to MSAA.
- VALUE - The Value property is not required for
every user interface element. For example, for text input fields, the
Value property should contain the text that has been typed into the
field. If the text input field is empty, the Value property would also
be empty. Another example of the use of the Value property is a
graphical link on a web page. If a graphic image has an associated
hyperlink, the Value property is set to the URL of the target web page.
Use your judgment to decide if each element should have an associated
Value property.
- DESCRIPTION - The Description property is not
required, but is used to provide additional information about a user
interface element when the other MSAA properties do not fully explain
the function of the element. If a Description property is provided, use
your judgment to decide if it is appropriate.
- KbSHORTCUT - If an element has an associated
keyboard shortcut, it should be provided in the KbShortcut property.
For example, a password entry field might have a label "Password", where the letter "P" is underlined indicating
that the keyboard shortcut of "Alt+P" can be used to move the keyboard
focus to that password field. In this case, the KbShortcut property
should contain "Alt+P" to reflect the available keyboard shortcut.
- PARENT, ANCESTORS - In some cases, an element may
be part of a larger grouping, or have a group of elements associated
with it. For example, a radio button group may have several buttons,
only one of which can be selected at any time. The entire grouping may
have a label describing the function of the group. In this case, the
Parent and/or the Ancestors properties should provide information about
the higher level container associated with the group. Use your judgment
to decide whether appropriate information is provided.
- CHILDREN, CHILDCOUNT - Some elements, like a tree
view, may have many children branching from the main element. In this
case, the Children and Childcount properties may contain useful
information. Use your judgment in these cases to decide whether
appropriate information is provided.
End of Test Case
The following techniques can be used to navigate a Windows application
using just the keyboard (without using the mouse).
- System menu (Alt + Spacebar)
- Press Alt + Spacebar to access system menu
- Use Arrow Keys to move from option to option.
- Menu bar options (Alt)
- Press Alt to access menu bar.
- Use Arrow Keys to move from option to option.
- Submenus can be opened and closed using Right and
Left Arrow keys.
- The Esc key closes submenus and eventually returns
focus to original focus location, before Alt was originally
pressed.
- Toolbars (a row of icons across the top of the window, below the menu
bar options)
- The Toolbar elements should be part of the Tab ring. The
Arrow keys might be used to move between icons on the
toolbar.
- Note: Some applications choose not to make the toolbar
accessible from the keyboard. If the toolbar icons are not
accessible through the keyboard, it must be
possible to access an equivalent function using the keyboard for
every option that can be added to the
toolbar.
- Dialog navigation
- The initial keyboard focus, when dialog is first opened, should be
in a logical place (probably upper left-most element in the
dialog).
- The Tab key can be used to move from option to
option, and Shift+Tab moves in reverse order.
- Use the Arrow keys to move between elements in a group
(such as a group of radio buttons).
- Note that static text in a dialog is most often not included in
the tab ring. All elements that require interaction with the user
MUST be accessible with the keyboard.
- Application Window navigation (sections, panes, frames, notebook tabs,
etc. that are part of the application window.)
- Common keystrokes to navigate between parts of an application
window:
- Use F6 to move between sections, panes and
frames,
- Use Ctrl+Tab to change from one notebook tab
to another, as in multiple web pages open in multiple notebook tabs
in the Firefox window.)
- Review the Windows keyboard shortcuts for common keystrokes
used with Windows applications. In Windows XP, you can find more
information about Windows keyboard shortcuts by searching the Help
and Support Center for "windows keyboard shortcuts overview".
- Context menus (box of options displayed when user clicks right mouse
button on a user interface element, such as an icon.)
- Use Shift+F10 to open context menus for element
that has current keyboard focus.
- Use Arrow keys to move between items in context
menu.
- User Interface Elements and Controls (common elements are listed here,
with keystrokes used to use them)
- Push Buttons: selectable with either the Enter or
Spacebar key.
- Check boxes: Spacebar will select/deselect a check
box.
- Radio button groups: Tab moves from one radio
button group to the next element, and Arrow keys move
from one radio button to another within a group.
- Text input fields: Tab moves to and from the input
field. (Note, however, that if tabs are allowed within the field,
another method of exiting the field must be provided!)
- Spin boxes: Up and Down Arrow
keys can increase or decrease the value of the spin box.
- Tree views: Branches of tree views can be opened with Right
Arrow, and closed with Left Arrow keys.
- Drop down boxes: Opened with Alt+Down Arrow.
- Any other user interface elements should be usable with standard
and intuitive keystrokes.
End of Appendix