1 Plan for Quality Assurance at the Start
Quality assurance should be delivered at the very beginning of any project, and not reserved for the last step of the process. Tests should be written by those who will conduct testing that are based on the web accessibility standards and on the best practices. It will help the entire team to catch critical accessibility bugs before they become real-world problems. Once the tests have been written, testing should ideally take place at just about every phase of the project.
2 Web Designers
Web designers can test the project for any of the visual and more accessibility requirements such as:
Typography, color contrast, predictable and consistent navigation, link visibility and target size, visual focus indicator, label proximity, and blocks of content being separated and distinct from each other.
3 Web Developers
In the developing phase, web developers can conduct testing for the accessibility requirements that relate with the basic code of the project. Automated unit testing and integration testing should be conducted to help catch code-related accessibility issues early in the development process as well as keyboard testing and screen reader testing of custom widgets and client-side scripting.
4 Create a Testing Methodology
For complete web accessibility testing to be effective during the testing phase, a testing methodology must be prepared to add consistency for discovering issues throughout the process. A methodology like the one below can be used to achieve a constant process and produce consistent results:
Decide the Scope for Testing
Decide how many pages will be evaluated, selecting representative pages, choosing which conformance level to evaluate against, etc.
5 Conduct Tests
Automated Tests: Use specific tools to find issues that can be found automatically.
Manual Tests: Go through a series of tests using different tools to find issues in the page or application that is being tested. The recommended process for manual testing is:
Audio and Video
Semantics and Document Structure
Document All Findings in an Accessibility Report Format
- Automated Testing
The code is checked with appropriate tool?
- Semantics and Structure
Headings, lists, menus, forms, etc. can be programmatically determined?
Has the reading order been tested to confirm that all content on the page is available in a logical order for assistive technologies?
Do all linked, informative, and decorative <img> components have appropriate alternative text (e.g., alt attributes)?
Do all informative background images have alternative text on the page that can be read by assistive technologies?
- Keyboard and Navigation
When navigating a page with the keyboard is focus always visible, is it managed when necessary, and does it follow a logical order?
Can all functionality be achieved using only the keyboard?
Are data tables marked up to convey the exact relationships between data cells and their related column or row header cells?
- Form Labels
Do form controls have visible labels? Are the label and control programmatically connected?
- Form Errors
Are error messages programmatically related with their form element?
If an error is detected on form submission, are screen reader users gets any alert?
If a validation error comes up during user input or when a user moves focus, is the error message spoken by a screen reader?
- Custom Controls
Do all custom controls, scripted components and widgets provide names and roles to mimic built-in HTML controls and are they programmatically determinable?
For scrolling, moving, blinking, dynamic or auto-updating content, functions have provided to stop, pause, hide, and control it?
- Setting Changes
Has it been tested that when any section gets focus, for example by tabbing to it, no major change of settings is automatically activated?
Has it been tested that when a person changes the setting of a user interface section, no major change of setting is automatically activated unless they have been notified earlier?
Can the time limit for completing a task be turned off, adjusted, or extended by the users?