Alternative input methods

Must

Alternative input methods must be supported.

Description

Some users do not use the input control provided with a device, such as the touch screen, or mouse. Instead, they may use a switch device, keyboard or braille display.

Alternative methods of input and navigation that work with the platform must be supported to facilitate the needs of the user.

Interactive content must not rely on a single input method. For example, a carousel must not support only touch interaction, it must also support alternative inputs via visible focusable elements

IOS

The Accessibility API provides alternative input methods for standard touch events. Focus control to elements is provided via the isAccessibilityElement property - this property should be set to YES to allow accessible input. VoiceOver also has some special gestures to consider, in particular the Escape and Magic Tap gestures. Refer to Apple Developer - Supporting Accessibility.

iOS example

[_view setIsAccessibilityElement:YES];                        
[_view setIsAccessibilityElement:NO];                        

ANDROID

Developers must ensure that all active elements can receive focus from assistive technology and alternative input methods. This can typically be accomplished by setting the focusable attribute for the field to true. For editable or read-only custom text elements that are developed by extending standard text elements you must ensure a system caret is set to indicate focus for the element.

Android example

//A text input field that can be accessed directly by touch and is focusable using the keyboard
<EditText android:id="@+id/editTextP" android:inputType="textPassword" android:layout_height="wrap_content" android:layout_width="wrap_content" android:focusable="true"></EditText>                        
//A text input that cannot be focused using the keyboard
<EditText android:id="@+id/editTextP" android:inputType="textPassword" android:layout_height="wrap_content" android:layout_width="wrap_content" android:focusable="false"></EditText>                        

HTML

Any HTML gestures must be supplemented with standard navigation methods such as keyboard focus, key presses, links, buttons, or other controls. For example, a drag and drop operation may be supplemented by select elements allowing the user to choose multiple combinations.

HTML example

A carousel that supports swiping left and right touch events such as touchstart, touchend, and touchmove can supplement these gestures with keyboard access using buttons, or by watching key presses:

<a href="...">Previous</a>
<a href="...">Next </a>                        

Listening for touch gestures without providing equivalent control via keyboard:

<script type="text/javascript">
... // perform some action on touch
</script>
...
<div
  ontouchstart="touchStart(event);"
  ontouchmove="touchMove(event);"
  ontouchend="touchEnd(event);"
  ontouchcancel="touchCancel(event);"
></div>                        

TESTING

 

Procedures
  1. Activate a screen reader and physical keyboard.
  2. Identify the active screen objects, elements, and controls.
  3. Ensure that all items can be navigated to via alternative input methods.
  4. Ensure that the items can be activated via alternative input methods.
  5. Activate the item.
  6. For items with complex functionality, check for equivalent methods of action support such the arrow keys to instead of swipe up and down gestures to move a slider.
Results

The following checks are all true:

  • Objects, elements, and controls can be navigated to via alternative input methods;
  • Items can be activated and manipulated via alternative input methods.