| page.title=Accessibility Testing Checklist | |
| parent.title=Testing | |
| parent.link=index.html | |
| @jd:body | |
| <div id="qv-wrapper"> | |
| <div id="qv"> | |
| <h2>In this document</h2> | |
| <ol> | |
| <li><a href="#goals">Testing Goals</a></li> | |
| <li><a href="#requirements">Testing Requirements</a></li> | |
| <li><a href="#recommendations">Testing Recommendations</a></li> | |
| <li><a href="#special-cases">Special Cases and Considerations</a></li> | |
| <li><a href="#how-to">Testing Accessibility Features</a> | |
| <ol> | |
| <li><a href="#test-audibles">Testing audible feedback</a></li> | |
| <li><a href="#test-navigation">Testing focus navigation</a></li> | |
| <li><a href="#test-gestures">Testing gesture navigation</a></li> | |
| </ol> | |
| </li> | |
| </ol> | |
| <h2>See Also</h2> | |
| <ol> | |
| <li> | |
| <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html"> | |
| Accessibility Developer Checklist</a> | |
| </li> | |
| <li> | |
| <a href="{@docRoot}design/patterns/accessibility.html"> | |
| Android Design: Accessibility</a> | |
| </li> | |
| <li> | |
| <a href="{@docRoot}guide/topics/ui/accessibility/apps.html"> | |
| Making Applications Accessible</a> | |
| </li> | |
| </ol> | |
| </div> | |
| </div> | |
| <p> | |
| Testing is an important part of making your application accessible to users with varying | |
| abilities. Following <a href="{@docRoot}design/patterns/accessibility.html">design</a> and | |
| <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html">development</a> guidelines for | |
| accessibility are important steps toward that goal, but testing for accessibility can uncover | |
| problems with user interaction that are not obvious during design and development.</p> | |
| <p>This accessibility testing checklist guides you through the important aspects of | |
| accessibility testing, including overall goals, required testing steps, recommended testing and | |
| special considerations. This document also discusses how to enable accessibility features on | |
| Android devices for testing purposes.</p> | |
| <h2 id="goals">Testing Goals</h2> | |
| <p>Your accessibility testing should have the following, high level goals:</p> | |
| <ul> | |
| <li>Set up and use the application without sighted assistance</li> | |
| <li>All task workflows in the application can be easily navigated using directional controls and | |
| provide clear and appropriate feedback</li> | |
| </ul> | |
| <h2 id="requirements">Testing Requirements</h2> | |
| <p>The following tests must be completed in order to ensure a minimum level of application | |
| accessibility.</p> | |
| <ol> | |
| <li><strong>Directional controls:</strong> Verify that the application can be operated | |
| without the use of a touch screen. Attempt to use only directional controls to accomplish the | |
| primary tasks in the application. Use the keyboard and directional-pad (D-Pad) controls in the | |
| Android <a href="{@docRoot}tools/devices/emulator.html">Emulator</a> or use | |
| <a href="http://support.google.com/nexus/bin/answer.py?hl=en&answer=2700718">gesture | |
| navigation</a> on devices with Android 4.1 (API Level 16) or higher. | |
| <p class="note"><strong>Note:</strong> Keyboards and D-pads provide different navigation paths | |
| than accessibility gestures. While gestures allow users to focus on nearly any on-screen | |
| content, keyboard and D-pad navigation only allow focus on input fields and buttons.</p> | |
| </li> | |
| <li><strong>TalkBack audio prompts:</strong> Verify that user interface controls that provide | |
| information (graphics or text) or allow user action have clear and accurate audio descriptions | |
| when <a href="#testing-talkback">TalkBack is enabled</a> and controls are focused. Use | |
| directional controls to move focus between application layout elements.</li> | |
| <li><strong>Explore by Touch prompts:</strong> Verify that user interface controls that | |
| provide information (graphics or text) or allow user action have appropriate audio descriptions | |
| when <a href="#testing-ebt">Explore by Touch is enabled</a>. There should be no | |
| regions where contents or controls do not provide an audio description.</li> | |
| <li><strong>Touchable control sizes:</strong> All controls where a user can select or take an | |
| action must be a minimum of 48 dp (approximately 9mm) in length and width, as recommended by | |
| <a href="{@docRoot}design/patterns/accessibility.html">Android Design</a>.</li> | |
| <li><strong>Gestures work with TalkBack enabled:</strong> Verify that app-specific gestures, | |
| such as zooming images, scrolling lists, swiping between pages or navigating carousel controls | |
| continue to work when <a href="#testing-talkback">TalkBack is enabled</a>. If these gestures do | |
| not function, then an alternative interface for these actions must be provided.</li> | |
| <li><strong>No audio-only feedback:</strong> Audio feedback must always have a secondary | |
| feedback mechanism to support users who are deaf or hard of hearing, for example: A sound alert | |
| for the arrival of a message should also be accompanied by a system | |
| {@link android.app.Notification}, haptic feedback (if available) or another visual alert.</li> | |
| </ol> | |
| <h2 id="recommendations">Testing Recommendations</h2> | |
| <p>The following tests are recommended for ensuring the accessibility of your application. If you | |
| do not test these items, it may impact the overall accessibility and quality of your | |
| application.</p> | |
| <ol> | |
| <li><strong>Repetitive audio prompting:</strong> Check that closely related controls (such as | |
| items with multiple components in a list) do not simply repeat the same audio prompt. For | |
| example, in a contacts list that contains a contact picture, written name and title, the prompts | |
| should not simply repeat “Bob Smith” for each item.</li> | |
| <li><strong>Audio prompt overloading or underloading:</strong> Check that closely related | |
| controls provide an appropriate level of audio information that enables users to understand and | |
| act on a screen element. Too little or too much prompting can make it difficult to understand | |
| and use a control.</li> | |
| </ol> | |
| <h2 id="special-cases">Special Cases and Considerations</h2> | |
| <p>The following list describes specific situations that should be tested to ensure an | |
| accessible app. Some, none or all of the cases described here may apply to your application. Be | |
| sure to review this list to find out if these special cases apply and take appropriate action.</p> | |
| <ol> | |
| <li><strong>Review developer special cases and considerations:</strong> Review the list of | |
| <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html#special-cases">special cases</a> | |
| for accessibility development and test your application for the cases that apply.</li> | |
| <li><strong>Prompts for controls that change function:</strong> Buttons or other controls | |
| that change function due to application context or workflow must provide audio prompts | |
| appropriate to their current function. For example, a button that changes function from play | |
| video to pause video should provide an audio prompt which is appropriate to its current state.</li> | |
| <li><strong>Video playback and captioning:</strong> If the application provides video | |
| playback, verify that it supports captioning and subtitles to assist users who are deaf or hard | |
| of hearing. The video playback controls must clearly indicate if captioning is available for a | |
| video and provide a clear way of enabling captions.</li> | |
| </ol> | |
| <h2 id="how-to">Testing Accessibility Features</h2> | |
| <p>Testing of accessibility features such as TalkBack, Explore by Touch and accessibility Gestures | |
| requires setup of your testing device. This section describes how to enable these features for | |
| accessibility testing.</p> | |
| <h3 id="test-audibles">Testing audible feedback</h3> | |
| <p>Audible accessibility feedback features on Android devices provide audio prompts that speaks | |
| the screen content as you move around an application. By enabling these features on an Android | |
| device, you can test the experience of users with blindness or low-vision using your application. | |
| </p> | |
| <p>Audible feedback for users on Android is typically provided by TalkBack accessibility service and | |
| the Explore by Touch system feature. The TalkBack accessibility service comes preinstalled on most | |
| Android devices and can also be downloaded for free from | |
| <a href="https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback">Google | |
| Play</a>. The Explore by Touch system feature is available on devices running Android 4.0 and later. | |
| </p> | |
| <h4 id="testing-talkback">Testing with TalkBack</h4> | |
| <p>The <em>TalkBack</em> accessibility service works by speaking the contents of user interface | |
| controls as the user moves focus onto controls. This service should be enabled as part of testing | |
| focus navigation and audible prompts.</p> | |
| <p>To enable the TalkBack accessibility service:</p> | |
| <ol> | |
| <li>Launch the <strong>Settings</strong> application.</li> | |
| <li>Navigate to the <strong>Accessibility</strong> category and select it.</li> | |
| <li>Select <strong>Accessibility</strong> to enable it.</li> | |
| <li>Select <strong>TalkBack</strong> to enable it.</li> | |
| </ol> | |
| <p class="note"> | |
| <strong>Note:</strong> While TalkBack is the most available Android accessibility service for | |
| users with disabilities, other accessibility services are available and may be installed by users. | |
| </p> | |
| <p>For more information about using TalkBack, see | |
| <a href="https://support.google.com/accessibility/android/topic/3529932">TalkBack</a>.</p> | |
| <h4 id="testing-ebt">Testing with Explore by Touch</h4> | |
| <p>The <em>Explore by Touch</em> system feature is available on devices running Android 4.0 and | |
| later, and works by enabling a special accessibility mode that allows users to drag a finger | |
| around the interface of an application and hear the contents of the screen spoken. This feature | |
| does not require screen elements to be focused using an directional controller, but listens for | |
| hover events over user interface controls. | |
| </p> | |
| <p>To enable Explore by Touch on Android 4.0 and later:</p> | |
| <ol> | |
| <li>Launch the <strong>Settings</strong> application.</li> | |
| <li>Navigate to the <strong>Accessibility</strong> category and select it.</li> | |
| <li>Select the <strong>TalkBack</strong> to enable it. | |
| <p class="note"><strong>Note:</strong> On Android 4.1 (API Level 16) and higher, the system | |
| provides a popup message to enable Explore by Touch. On older versions, you must follow the | |
| step below.</p> | |
| </li> | |
| <li>Return to the <strong>Accessibility</strong> category and select <strong>Explore by | |
| Touch</strong> to enable it. | |
| <p class="note"><strong>Note:</strong> You must turn on TalkBack <em>first</em>, otherwise this | |
| option is not available.</p> | |
| </li> | |
| </ol> | |
| <p>For more information about using the Explore by Touch features, see | |
| <a href="https://support.google.com/accessibility/android/answer/6006598">Touch Exploration</a>.</p> | |
| <h3 id="test-navigation">Testing focus navigation</h3> | |
| <p>Focus navigation is the use of directional controls to navigate between the individual user | |
| interface elements of an application in order to operate it. Users with limited vision or limited | |
| manual dexterity often use this mode of navigation instead of touch navigation. As part of | |
| accessibility testing, you should verify that your application can be operated using only | |
| directional controls.</p> | |
| <p>You can test navigation of your application using only focus controls, even if your test devices | |
| does not have a directional controller. The <a href="{@docRoot}tools/help/emulator.html">Android | |
| Emulator</a> provides a simulated directional controller that you can use to test navigation. You | |
| can also use a software-based directional controller, such as the one provided by the | |
| <a href="https://play.google.com/store/apps/details?id=com.googlecode.eyesfree.inputmethod.latin" | |
| >Eyes-Free Keyboard</a> to simulate use of a D-pad on a test device that does not have a physical | |
| D-pad.</p> | |
| <h3 id="test-gestures">Testing gesture navigation</h3> | |
| <p>Gesture navigation is an accessibility navigation mode that allows users to navigate Android | |
| devices and applications using specific | |
| <a href="https://support.google.com/accessibility/android/answer/6006598">gestures</a>. This | |
| navigation mode is available on Android 4.1 (API Level 16) and higher.</p> | |
| <p class="note"><strong>Note:</strong> Accessibility gestures provide a different navigation path | |
| than keyboards and D-pads. While gestures allow users to focus on nearly any on-screen | |
| content, keyboard and D-pad navigation only allow focus on input fields and buttons.</p> | |
| <p>To enable gesture navigation on Android 4.1 and later:</p> | |
| <ul> | |
| <li>Enable both TalkBack and the Explore by Touch feature as described in the | |
| <a href="#testing-ebt">Testing with Explore by Touch</a>. When <em>both</em> of these | |
| features are enabled, accessibility gestures are automatically enabled.</li> | |
| <li>You can change gesture settings using <strong>Settings > Accessibility > TalkBack > | |
| Settings > Manage shortcut gestures</strong>. | |
| </ul> | |
| <p>For more information about using Explore by Touch accessibility gestures, see | |
| <a href="https://support.google.com/accessibility/android/answer/6006598">Touch Exploration</a>.</p> | |
| <p class="note"> | |
| <strong>Note:</strong> Accessibility services other than TalkBack may map accessibility gestures | |
| to different user actions. If gestures are not producing the expected actions during testing, try | |
| disabling other accessibility services before proceeding.</p> |