1page.title=Accessibility Testing Checklist 2parent.title=Testing 3parent.link=index.html 4@jd:body 5 6<div id="qv-wrapper"> 7 <div id="qv"> 8 <h2>In this document</h2> 9 <ol> 10 <li><a href="#goals">Testing Goals</a></li> 11 <li><a href="#requirements">Testing Requirements</a></li> 12 <li><a href="#recommendations">Testing Recommendations</a></li> 13 <li><a href="#special-cases">Special Cases and Considerations</a></li> 14 <li><a href="#how-to">Testing Accessibility Features</a> 15 <ol> 16 <li><a href="#test-audibles">Testing audible feedback</a></li> 17 <li><a href="#test-navigation">Testing focus navigation</a></li> 18 <li><a href="#test-gestures">Testing gesture navigation</a></li> 19 </ol> 20 </li> 21 </ol> 22 23 <h2>See Also</h2> 24 <ol> 25 <li> 26 <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html"> 27 Accessibility Developer Checklist</a> 28 </li> 29 <li> 30 <a href="{@docRoot}design/patterns/accessibility.html"> 31 Android Design: Accessibility</a> 32 </li> 33 <li> 34 <a href="{@docRoot}guide/topics/ui/accessibility/apps.html"> 35 Making Applications Accessible</a> 36 </li> 37 </ol> 38 </div> 39</div> 40<p> 41 Testing is an important part of making your application accessible to users with varying 42 abilities. Following <a href="{@docRoot}design/patterns/accessibility.html">design</a> and 43 <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html">development</a> guidelines for 44 accessibility are important steps toward that goal, but testing for accessibility can uncover 45 problems with user interaction that are not obvious during design and development.</p> 46 47<p>This accessibility testing checklist guides you through the important aspects of 48 accessibility testing, including overall goals, required testing steps, recommended testing and 49 special considerations. This document also discusses how to enable accessibility features on 50 Android devices for testing purposes.</p> 51 52 53<h2 id="goals">Testing Goals</h2> 54 55<p>Your accessibility testing should have the following, high level goals:</p> 56 57<ul> 58 <li>Set up and use the application without sighted assistance</li> 59 <li>All task workflows in the application can be easily navigated using directional controls and 60 provide clear and appropriate feedback</li> 61</ul> 62 63 64<h2 id="requirements">Testing Requirements</h2> 65 66<p>The following tests must be completed in order to ensure a minimum level of application 67 accessibility.</p> 68 69<ol> 70 <li><strong>Directional controls:</strong> Verify that the application can be operated 71 without the use of a touch screen. Attempt to use only directional controls to accomplish the 72 primary tasks in the application. Use the keyboard and directional-pad (D-Pad) controls in the 73 Android <a href="{@docRoot}tools/devices/emulator.html">Emulator</a> or use 74 <a href="http://support.google.com/nexus/bin/answer.py?hl=en&answer=2700718">gesture 75 navigation</a> on devices with Android 4.1 (API Level 16) or higher. 76 <p class="note"><strong>Note:</strong> Keyboards and D-pads provide different navigation paths 77 than accessibility gestures. While gestures allow users to focus on nearly any on-screen 78 content, keyboard and D-pad navigation only allow focus on input fields and buttons.</p> 79 </li> 80 <li><strong>TalkBack audio prompts:</strong> Verify that user interface controls that provide 81 information (graphics or text) or allow user action have clear and accurate audio descriptions 82 when <a href="#testing-talkback">TalkBack is enabled</a> and controls are focused. Use 83 directional controls to move focus between application layout elements.</li> 84 <li><strong>Explore by Touch prompts:</strong> Verify that user interface controls that 85 provide information (graphics or text) or allow user action have appropriate audio descriptions 86 when <a href="#testing-ebt">Explore by Touch is enabled</a>. There should be no 87 regions where contents or controls do not provide an audio description.</li> 88 <li><strong>Touchable control sizes:</strong> All controls where a user can select or take an 89 action must be a minimum of 48 dp (approximately 9mm) in length and width, as recommended by 90 <a href="{@docRoot}design/patterns/accessibility.html">Android Design</a>.</li> 91 <li><strong>Gestures work with TalkBack enabled:</strong> Verify that app-specific gestures, 92 such as zooming images, scrolling lists, swiping between pages or navigating carousel controls 93 continue to work when <a href="#testing-talkback">TalkBack is enabled</a>. If these gestures do 94 not function, then an alternative interface for these actions must be provided.</li> 95 <li><strong>No audio-only feedback:</strong> Audio feedback must always have a secondary 96 feedback mechanism to support users who are deaf or hard of hearing, for example: A sound alert 97 for the arrival of a message should also be accompanied by a system 98 {@link android.app.Notification}, haptic feedback (if available) or another visual alert.</li> 99</ol> 100 101 102<h2 id="recommendations">Testing Recommendations</h2> 103 104<p>The following tests are recommended for ensuring the accessibility of your application. If you 105 do not test these items, it may impact the overall accessibility and quality of your 106 application.</p> 107 108<ol> 109 <li><strong>Repetitive audio prompting:</strong> Check that closely related controls (such as 110 items with multiple components in a list) do not simply repeat the same audio prompt. For 111 example, in a contacts list that contains a contact picture, written name and title, the prompts 112 should not simply repeat “Bob Smith” for each item.</li> 113 <li><strong>Audio prompt overloading or underloading:</strong> Check that closely related 114 controls provide an appropriate level of audio information that enables users to understand and 115 act on a screen element. Too little or too much prompting can make it difficult to understand 116 and use a control.</li> 117</ol> 118 119 120<h2 id="special-cases">Special Cases and Considerations</h2> 121 122<p>The following list describes specific situations that should be tested to ensure an 123 accessible app. Some, none or all of the cases described here may apply to your application. Be 124 sure to review this list to find out if these special cases apply and take appropriate action.</p> 125 126<ol> 127 <li><strong>Review developer special cases and considerations:</strong> Review the list of 128 <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html#special-cases">special cases</a> 129 for accessibility development and test your application for the cases that apply.</li> 130 <li><strong>Prompts for controls that change function:</strong> Buttons or other controls 131 that change function due to application context or workflow must provide audio prompts 132 appropriate to their current function. For example, a button that changes function from play 133 video to pause video should provide an audio prompt which is appropriate to its current state.</li> 134 <li><strong>Video playback and captioning:</strong> If the application provides video 135 playback, verify that it supports captioning and subtitles to assist users who are deaf or hard 136 of hearing. The video playback controls must clearly indicate if captioning is available for a 137 video and provide a clear way of enabling captions.</li> 138</ol> 139 140 141<h2 id="how-to">Testing Accessibility Features</h2> 142 143<p>Testing of accessibility features such as TalkBack, Explore by Touch and accessibility Gestures 144requires setup of your testing device. This section describes how to enable these features for 145accessibility testing.</p> 146 147 148<h3 id="test-audibles">Testing audible feedback</h3> 149 150<p>Audible accessibility feedback features on Android devices provide audio prompts that speaks 151 the screen content as you move around an application. By enabling these features on an Android 152 device, you can test the experience of users with blindness or low-vision using your application. 153</p> 154 155<p>Audible feedback for users on Android is typically provided by TalkBack accessibility service and 156the Explore by Touch system feature. The TalkBack accessibility service comes preinstalled on most 157Android devices and can also be downloaded for free from 158<a href="https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback">Google 159Play</a>. The Explore by Touch system feature is available on devices running Android 4.0 and later. 160</p> 161 162<h4 id="testing-talkback">Testing with TalkBack</h4> 163 164<p>The <em>TalkBack</em> accessibility service works by speaking the contents of user interface 165controls as the user moves focus onto controls. This service should be enabled as part of testing 166focus navigation and audible prompts.</p> 167 168<p>To enable the TalkBack accessibility service:</p> 169<ol> 170 <li>Launch the <strong>Settings</strong> application.</li> 171 <li>Navigate to the <strong>Accessibility</strong> category and select it.</li> 172 <li>Select <strong>Accessibility</strong> to enable it.</li> 173 <li>Select <strong>TalkBack</strong> to enable it.</li> 174</ol> 175 176<p class="note"> 177 <strong>Note:</strong> While TalkBack is the most available Android accessibility service for 178 users with disabilities, other accessibility services are available and may be installed by users. 179</p> 180 181<p>For more information about using TalkBack, see 182<a href="https://support.google.com/accessibility/android/topic/3529932">TalkBack</a>.</p> 183 184<h4 id="testing-ebt">Testing with Explore by Touch</h4> 185 186<p>The <em>Explore by Touch</em> system feature is available on devices running Android 4.0 and 187 later, and works by enabling a special accessibility mode that allows users to drag a finger 188 around the interface of an application and hear the contents of the screen spoken. This feature 189 does not require screen elements to be focused using an directional controller, but listens for 190 hover events over user interface controls. 191</p> 192 193<p>To enable Explore by Touch on Android 4.0 and later:</p> 194<ol> 195 <li>Launch the <strong>Settings</strong> application.</li> 196 <li>Navigate to the <strong>Accessibility</strong> category and select it.</li> 197 <li>Select the <strong>TalkBack</strong> to enable it. 198 <p class="note"><strong>Note:</strong> On Android 4.1 (API Level 16) and higher, the system 199 provides a popup message to enable Explore by Touch. On older versions, you must follow the 200 step below.</p> 201 </li> 202 <li>Return to the <strong>Accessibility</strong> category and select <strong>Explore by 203Touch</strong> to enable it. 204 <p class="note"><strong>Note:</strong> You must turn on TalkBack <em>first</em>, otherwise this 205option is not available.</p> 206 </li> 207</ol> 208 209<p>For more information about using the Explore by Touch features, see 210<a href="https://support.google.com/accessibility/android/answer/6006598">Touch Exploration</a>.</p> 211 212<h3 id="test-navigation">Testing focus navigation</h3> 213 214<p>Focus navigation is the use of directional controls to navigate between the individual user 215 interface elements of an application in order to operate it. Users with limited vision or limited 216 manual dexterity often use this mode of navigation instead of touch navigation. As part of 217 accessibility testing, you should verify that your application can be operated using only 218 directional controls.</p> 219 220<p>You can test navigation of your application using only focus controls, even if your test devices 221 does not have a directional controller. The <a href="{@docRoot}tools/help/emulator.html">Android 222 Emulator</a> provides a simulated directional controller that you can use to test navigation. You 223 can also use a software-based directional controller, such as the one provided by the 224 <a href="https://play.google.com/store/apps/details?id=com.googlecode.eyesfree.inputmethod.latin" 225 >Eyes-Free Keyboard</a> to simulate use of a D-pad on a test device that does not have a physical 226 D-pad.</p> 227 228 229<h3 id="test-gestures">Testing gesture navigation</h3> 230 231<p>Gesture navigation is an accessibility navigation mode that allows users to navigate Android 232 devices and applications using specific 233 <a href="https://support.google.com/accessibility/android/answer/6006598">gestures</a>. This 234 navigation mode is available on Android 4.1 (API Level 16) and higher.</p> 235 236<p class="note"><strong>Note:</strong> Accessibility gestures provide a different navigation path 237than keyboards and D-pads. While gestures allow users to focus on nearly any on-screen 238content, keyboard and D-pad navigation only allow focus on input fields and buttons.</p> 239 240<p>To enable gesture navigation on Android 4.1 and later:</p> 241<ul> 242 <li>Enable both TalkBack and the Explore by Touch feature as described in the 243 <a href="#testing-ebt">Testing with Explore by Touch</a>. When <em>both</em> of these 244 features are enabled, accessibility gestures are automatically enabled.</li> 245 <li>You can change gesture settings using <strong>Settings > Accessibility > TalkBack > 246 Settings > Manage shortcut gestures</strong>. 247</ul> 248 249<p>For more information about using Explore by Touch accessibility gestures, see 250<a href="https://support.google.com/accessibility/android/answer/6006598">Touch Exploration</a>.</p> 251 252<p class="note"> 253 <strong>Note:</strong> Accessibility services other than TalkBack may map accessibility gestures 254 to different user actions. If gestures are not producing the expected actions during testing, try 255 disabling other accessibility services before proceeding.</p>