Interface Objects, elements and Labels
ISSUE:
Screen-readers and other adaptive technology must be able to access information about focus objects (identity), their role (operation) and current state for all controls in a software application. For example, when a screen-reader user presses the tab key to move from one active region to another within a dialog, the screen-reader must be able to access and report the following information:
- Control Group Name.
- Control Name.
- Control Type (e.g., radio button, checkbox, edit field, list box).
- Control State (e.g., checked or unchecked, number of controls [1 of 4]).
A label must be programmatically associated with each object in order for assistive technology to access and report accurate information to the user. If labels are not associated programmatically, screen readers will attempt to use proximity to determine the label for a control or object.
Screen-readers rely on what is known as an "off-screen model" (OSM) to monitor normal system drawing operations. The off-screen model stores Information such as text content, input caret (insertion pointer) location, and text attributes (e.g., font color, size and style). The off-screen model also tracks the deleting, over-writing or copying of information. If information is written to the screen in a non-standard manner, a screen-reader may not be able to access and convey the information.
STANDARD:
- Windows applications should use standard Windows controls that provide clear, correct and concise object information.
- Microsoft Active Accessibility (MSAA) should be used to provide object information.
Programmer's Note: Run Inspect Objects. Position the mouse pointer over each object and verify that the name, role, and state fields are available.
Text labels should occur in close proximatey with their associated controls.
Bitmap images used to identify programmatic objects should be consistent throughout an application.
Programmer's Note: Use standard function calls to Draw text. For Windows systems, use ExtTextOut and DrawText. This applies to text in the client area as well as text in custom controls.
Use standard functions to copy or erase text and graphics. For Windows systems, these APIs include BitBlt, PatBlt, and StretchBlt. This should be done whether drawing to a screen or to an off-screen bitmap, as screen-readers use the OSM to track the text and graphics from the time they are drawn until they are copied to the display.
Avoid the direct manipulation of bitmaps.
Avoid directly modifying the screen. The Windows application programming interface (API) provides several means of manipulating bitmap or display pixels directly. Avoid the use of APIs such as DirectDraw, Display Control Interface (DCI), WinG, and the CreateDIBSection function.