Checkpoint 502.3.13: Modification of Focus Cursor

Focus, text insertion point, and selection attributes that can be set by the user shall be capable of being set programmatically, including through the use of assistive technology.

Rationale

Even if the software provides keyboard access so users can navigate the software, the focus location, selection state and text insertion point information must also be programmatically available to assistive technology.

Assistive technology (AT) - for example, a speech recognition program - needs programmatic access to the focus, text insertion point and selection attributes to process a user's spoken commands (e.g., creating a new document in the application, entering spoken text into the document or moving focus back to the start of the text to insert a new statement) to manipulate these features in the application or non-web document being accessed.

Development Techniques

Note: Review the General techniques as well as other tabs applicable to your technology.  Prioritize the use of technology-specific techniques, and implement the General techniques as needed. You are always required to find, understand and implement accessible code techniques to meet the checkpoint. The documented techniques and supplements are not exhaustive; they illustrate acceptable ways to achieve the spirit of the checkpoint. If numbered, techniques are in order of preference, with recommended techniques listed first.

General techniques

Each item in this section represents a technique or combination of techniques deemed sufficient for meeting this checkpoint.

  • Using native controls or standard programming elements that support programmatic access by assistive technology to focus, text insertion point, and selection attributes that can be set by the user
  • Programmatically exposing focus, text insertion point, and selection attributes that can be set by the user to assistive technology

Mobile Native (iOS) techniques

Instructions: In addition to the General Techniques, each item in this section represents a technique or combination of techniques deemed sufficient where applicable.

Note: This example also appears in, and is relevant to, Checkpoint 2.4.7 - Focus Visible.

Making sure focus, text insertion point, and selection attributes of user interface components are trackable and modifiable

When you use the standard iOS controls, set the accessibility attribute of each control. In Interface Builder, this is done by selecting the Accessibility checkbox Enabled found on the Identity Inspector tab.

Accessibility can be enabled programmatically with the setIsAccessibilityElement and setAccessibilityLabel methods:

[self.myButton setIsAccessibilityElement:YES];
[self.myButton setAccessibilityLabel: @"label text for button"];

Eclipse techniques

Instructions: In addition to the General techniques, each item in this section represents a technique or combination of techniques deemed sufficient where applicable.

Providing selection of data table elements through the AccessibleTableListener interface

Add an AccessibleTableListener to the table's Accessible and add an AccessibleTableCellListener to the Accessible of each table item including the cells, column headers and row headers as outlined in Checkpoint 502.3.3 Row, Column, Headers.

Implement the methods that programmatically expose selecting the data table elements to assistive technology including deselectColumn, deselectRow, selectColumn, selectRow, setSelectedColumn and setSelectedRow along with the supporting getter and isSelected methods.
 

Providing caret movement and selection of text through the AccessibleTextListener interface

Implementing the AccessibleTextListener as outlined in Situation B in Checkpoint 502.3.8 Text  meets the requirements of this checkpoint for text widgets.

Windows-based (MSAA+IA2) techniques

Instructions: In addition to the General techniques, refer to the Windows techniques tab in checkpoint 502.3.1 Object Information to learn about accessibility APIs, and use the following to support Windows accessibilty.

Providing selection of data table elements through the IAccessibleTable2 interface

Programmatically expose data tables to assistive technology as outlined in Checkpoint 502.3.3 Row, Column, Headers.

Implement the methods of IAccessibleTable2 that programmatically expose selecting the data table elements to assistive technology including selectColumn, selectRow, unselectColumn and unselectRow, along with the supporting getter and isSelected methods.

Providing caret movement and selection of text through the IAccessibleText interface

Implementing the IAccessibleText interface as outlined in Checkpoint 502.3.8 Text  meets the requirements of this checkpoint for text widgets.


Most links in this checklist reside outside ibm.com at the Web Content Accessibility Guidelines (WCAG) 2.0. W3C Recommendation 11 December 2008: http://www.w3.org/TR/WCAG20/

Copyright © 1994-2017 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University, Beihang University). All Rights Reserved.

Copyright © 2001, 2017 IBM Corporation