< Back to Demos | Learn more at PaulJAdam.com >

Mobile Accessibility QA Testing Checklist

WCAG 2.0 AA Checklist
X Success Criteria # LVL Guideline Mobile Accessibility QA Test Method
  Non-text Content 1.1.1 A Text Alternatives
  1. Set screen reader focus to each non-text content element including images, buttons, form controls, iframes, and audio/video. 
  2. Check that accessible name spoken is a short, accurate description of the non-text content, but does not identify its type. E.g. a play button should have the label “Play” but not its role “button” included in the label. Check that you don’t hear output similar to “Play Button, button”.    
  3. Check that role spoken correctly describes element’s state, behavior, or usage. E.g. check that buttons have a button role and images have an image role. 
  4. Check that any required accessible description information is also spoken.
  5. Check that adjustable elements like sliders have the correct value like “50%”. Adjust the values and check that the screen reader speaks the correct value.
  6. Check that purely decorative images are not focusable by the keyboard or screen reader. 
  7. Check that that custom views such as star rating widgets speak an accurate label. 
  Audio-only and Video-only (Prerecorded) 1.2.1 A Time-based Media
  1. Check that information presented in audio-only format has a text transcript.
  2. Check that information presented in video-only format has a either an audio equivalent or a text transcript.  
  Captions (Prerecorded) 1.2.2  A Time-based Media
  1. Enable closed captions under Settings.
  2. Play videos. 
  3. Check that videos include synchronized captions.
  4. Check that captions are accurate. 
  Audio Description or Media Alternative (Prerecorded) 1.2.3 A Time-based Media
  1. Play videos. 
  2. Language button should appear if closed audio descriptions track included.
  3. Activate Language button, select audio descriptions track.
  4. Check that audio descriptions are accurate. 
  Captions (Live) 1.2.4 AA Time-based Media
  1. Check that live captions are provided for all real-time audio/video presentations.
  Audio Description (Prerecorded) 1.2.5 AA Time-based Media
  1. Play videos. 
  2. Language button should appear if closed audio descriptions track included.
  3. Activate Language button, select audio descriptions track.
  4. Check that audio descriptions are accurate. 
  Info and Relationships 1.3.1 A Adaptable
  1. Navigate through all semantic HTML elements using screen reader gestures or keyboard commands. 
  2. Set screen reader focus to Headings, Lists, Tables and check that they correctly coded with semantic HTML.
  3. If you cannot set focus to an item that appears to be a Heading element when using heading quick navigation commands then is is not coded with semantic HTML.
  4. Navigate between row and columns inside data table cells with the screen reader and check that the correct row and column headers are spoken.
  5. Check that the <legend> text is spoken for each <input> within a <fieldset> when the screen reader sets focus to an input in the group.
  6. Use Landmark navigation to check that you can jump between the visually distinct Header, Navigation, Main Content, and Footer regions of the page.
  Meaningful Sequence 1.3.2 A Adaptable
  1. Swipe through all elements on the screen from top to bottom and check that the reading order matches the visual presentation order.
  2. Check that content is read in an order that does not disrupt the meaning.
  Sensory Characteristics 1.3.3 A Adaptable
  1. Check that instructions provided for using the app do not rely solely on visual or audio-only information. 
  Use of Color 1.4.1 A Distinguishable
  1. Set device to use grayscale colors only in accessibility settings.
  2. Check that color alone is not used as the only means of conveying information. 
  Audio Control 1.4.2 A Distinguishable
  1. Check that any audio that plays automatically for more than 3 seconds has a method to pause or stop the audio, or a method to control its audio volume independent from the system volume.
  Contrast (Minimum) 1.4.3 AA Distinguishable
  1. Use a color contrast analyzer testing tool to check that text is not too light when used on a light background or too dark when used on a dark background. 
  2. Logos and text that are purely decorative do not need contrast testing. 
  3. Disabled controls don't need to meet contrast requirements.
  Resize text 1.4.4 AA Distinguishable
  1. Pinch-to-zoom should be able to increase the text size.
  2. If pinch-to-zoom is not working then another method must be available to resizes text.
  3. Enable Large Text sizes under accessibility settings and test native app to check that text can enlarge.
  Images of Text 1.4.5 AA Distinguishable
  1. Images of text should not be used.
  2. Set focus to any images of text. 
  3. Check that all images of text have the exact, correct text alternative. 
  Keyboard 2.1.1 A Keyboard Accessible
  1. For iOS, navigate the app and activate all user interface controls using VoiceOver and a Keyboard.
  2. For Android, navigate the app and activate all user interface controls using a Keyboard only without TalkBack running.
  No Keyboard Trap 2.1.2 A Keyboard Accessible
  1. Navigate through all elements in the app and check that focus is never trapped. 
  Timing Adjustable 2.2.1 A Enough Time
  1. Navigate through the app but leave the app idle for a period of time until the time-out activates. 
  2. Check that there is a warning before you are kicked out and that you are allowed to extend your session before being logged out. Or check that you can adjust the time limit settings to at least 10 times longer than the default. 
  3. Time out extensions do not apply to real time exceptions like auctions or timed tests. 
  Pause, Stop, Hide 2.2.2 A Enough Time
  1. Check that moving, blinking, scrolling, or auto-updating content is able to be paused, stopped, or hidden. 
  Three Flashes or Below Threshold 2.3.1 A Seizures
  1. Check that the app has no elements that flash more than three times per second. 
  Bypass Blocks 2.4.1 A Navigable
  1. Check that there is a method such as a skip link or WAI-ARIA landmarks that allow the user to bypass blocks of content that are repeated on multiple screens.
  2. Use Landmarks quick navigation commands to bypass blocks of content. Check that you can use landmarks to skip over the navigation directly to the main content. 
  Page Titled 2.4.2 A Navigable
  1. Check that each screen in the app has a useful & unique title. 
  Focus Order 2.4.3 A Navigable
  1. Navigate through all elements in the app using gestures or the keyboard and check that they are read in the correct order. 
  Link Purpose (In Context) 2.4.4 A Navigable
  1. Set focus to every link and button, check that its accessible name spoken to the screen reader makes sense.
  2. Check that the purpose of each link or button can be determined based on its label text alone or its label text together with its programmatically determined link context.
  Multiple Ways 2.4.5 AA Navigable
  1. Check that there are multiple ways to find content within an app by using a search feature, table of contents, site map, or linking to all parts of app from the home page. 
  Headings and Labels 2.4.6 AA Navigable
  1. Check that headings used for organizing content and labels for user interface controls and form inputs describe their topic or purpose. 
  Focus Visible 2.4.7 AA Navigable
  1. Navigate through all elements of the app using a keyboard and check that focus is always visible. 
  2. Check that the currently focused element is always visible on screen.
  Language of Page 3.1.1 A Readable
  1. Set screen reader speech settings to default language.
  2. Set focus to page content and the screen reader should speak text in the proper speech language synthesizer. 
  Language of Parts 3.1.2 AA Readable
  1. Set screen reader speech settings to default language.
  2. Set focus to parts of the page with a different language and the screen reader should speak text in the proper speech language synthesizer, e.g. lang="es" will speak with a Spanish screen reader voice rather than English.
  On Focus 3.2.1 A Predictable
  1. Set focus to all components of the app and check that when a component receives focus that it does not cause a change of context
  On Input 3.2.2 A Predictable
  1. Change the settings of all user interface components and check that does not automatically cause of a change of context unless the user has been warned of that behavior before using the component. 
  Consistent Navigation 3.2.3 AA Predictable
  1. Navigate through all screens of the app and check that the app’s internal navigation occurs in the same relative order and is consistent. 
  Consistent Identification 3.2.4 AA Predictable
  1. Navigate through all screens of the app and check that the user interface components are identified consistently. 
  Error Identification 3.3.1 A Input Assistance
  1. Submit forms in the app using blank and incorrect data.
  2. Check that errors are identified, described in text, and spoken by the screen reader.
  3. Set focus to inputs that have errors and check that the error messages are spoken by the screen reader. 
  Labels or Instructions 3.3.2 A Input Assistance
  1. Set focus to each text input control and check that the spoken label provides instructions for user input.
  2. Set focus to form controls that require specifically formatted input and check that all instructions for correctly entering the text are spoken by the screen reader.
  3. Check that labels and instructions are always visible to the sighted user also.
  Error Suggestion 3.3.3 AA Input Assistance
  1. Set focus to an input that has been incorrectly formatted or was left blank and is in error. 
  2. Check that an example or suggestion of a correct input and its format is visible and spoken by the screen reader. 
  Error Prevention (Legal, Financial, Data) 3.3.4 AA Input Assistance
  1. This success criterion applies to apps with actions that cause legal commitments, financial transactions, that modify or delete user-controllable data in data storage systems, or submits user test responses. 
  2. Test the app to check that submissions are reversible, that the user can check the date for input errors with a chance to correct them, or that information is reviewed, confirmed, and corrected before finalizing the submission. 
  Parsing 4.1.1 A Compatible
  1. This success criterion only applies to web view apps and would have to be tested using HTML validation. 
  2. Recommend using FireEyes for this testing which would apply to HTML content only.
  Name, Role, Value 4.1.2 A Compatible
  1. Set focus to all user interface components including form elements, links, and JavaScript widgets and check that the accessible name spoken makes sense, and that the element has correct role, state, and value. 
  2. Check that the role spoken (link, button, etc.) correctly matches the functionality of the element.
  3. Check that the state of the element is spoken. E.g. expanded/collapsed/dimmed/disabled.
  4. Check that the value of an adjustable element is accurate.