• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=Accessibility Testing Checklist
2page.tags=testing,accessibility
3
4trainingnavtop=true
5startpage=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
146requires setup of your testing device. This section describes how to enable these features for
147accessibility 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
158the Explore by Touch system feature. The TalkBack accessibility service comes preinstalled on most
159Android 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
161Play</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
167controls as the user moves focus onto controls. This service should be enabled as part of testing
168focus 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
205Touch</strong> to enable it.
206    <p class="note"><strong>Note:</strong> You must turn on TalkBack <em>first</em>, otherwise this
207option 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
239than keyboards and D-pads. While gestures allow users to focus on nearly any on-screen
240content, 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 &gt; Accessibility &gt; TalkBack &gt;
248    Settings &gt; 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>