Here we provide a checklist you can use to ensure that your pull request meets the accessibility requirements.
For more info, read:
- Tab order is logical and matches the visual layout. Reverse tabbing follows the same path. Focus can only be set to interactive controls (not static elements like labels).
- Arrowing is supported among child elements of a grouping or composite element (e.g., list). Grids can be fully navigated by arrow without requiring switching between left/right vs. up/down arrow keys.
- Keyboard activation of interactive controls can be accomplished. Enter key invokes default action. Spacebar activates the control which has focus.
- Keyboard shortcuts work & are documented.
- Check if all interactive UI elements set the accessible name. (More info)
- Narrator has been run to verify E2E programmatic access. (See Narrator user guide)
- Narrator: Launch of app results in correct default focus set which is automatically read out. Accessible name, role (control type) and value is read out for all controls.
- All elements (static text or interactive controls) can be reached with Narrator item navigation commands.
- Transitioning to a new UI results in default focus being set an appropriate & meaningful accessible name being read out.
- Invisible controls (e.g., used for layout purposes) are not reachable by Narrator. Dynamic content (e.g., alerts, validation errors, popups/windows appearing) are read out automatically.
- Default contrast of 4.5:1 (Color Contrast Analyser or other tools) is met or exceeded for all text using default/out-of-box settings.
- Display or text scaling causes UI to scale correctly and not result in controls being obscured.
- Ensure that your UI doesn’t use color as the only way to convey information.
- Switch to a high contrast theme and verify that the UI for your app is readable and usable.
- Both high contrast black & white themes are supported.
- Contrast of 14:1 is met or exceeded for all text (Color Contrast Analyser or other tools ).
- Icons are visible.
- Colors match those defined by type in the Ease of Access high contrast preview.
- Controls can be invoked by saying their names.
- "Show numbers" works to visually disambiguate controls clearly and can be used to invoke controls.
- Use speech recognition.
- Use tools such as Accessibility Insights or Inspect to verify programmatic access, run diagnostic tools such as AccChecker to discover common errors, and verify the screen reading experience with Narrator. Other tools: AccScope and AccEvent.