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