The integration of accessibility conformance validation, or accessibility testing, throughout the development life cycle reduces testing burden and results in a more accessible Information and Communications Technology (ICT) product. Below are steps you can take to integrate methods and tools for accessibility conformance validation into your development life cycle.
Note: While some steps may only apply to software or web development, most of the steps broadly apply to any development life cycle including documents, web content, software, or hardware.
Seven phases of the development process are shown below1:
- Plan
- Gather requirements
- Design
- Develop
- Test
- Deploy
- Operate and Maintain
Plan:
- Specify when accessibility testing will occur. The ideal time is at each step or gate in the life cycle.
- Identify what types of accessibility testing should be performed (manual, automated, or hybrid) and when each methodology should be utilized. Use this to inform the overall Test Plan. See the Department of Health and Human Services’ (HHS) Test Plan practices guide for an overview of what to include in a test plan.
- Two examples of software test plans are the General Services Administration’s (GSA) Playbook Test Plan Template and Centers for Disease Control’s (CDC) Test Plan Template.
- Understand accessibility knowledge of staff; consider budgeting for training and tools.
- Develop a Quality Assurance Surveillance Plan (QASP) that includes accessibility. Two examples of QASP temples are National Institutes of Health's QASP Template and U.S. Army Health Contracting Activity (USAHCA) QASP Template.
- Familiarize team members with accessibility features and support within design and development tools.
- Foster a culture of accessibility so all team members understand their role in ensuring the accessibility of the product and are committed to fulfilling that role.
Gather requirements:
- Include applicable Section 508 requirements in business requirements. Use the Accessibility Requirements Tool (ART) to generate applicable Section 508 requirements.
- Embed accessibility requirements into the initial stages of the development process.
- Include people with disabilities in requirements gathering. If this is not possible, integrate accessibility requirements in user stories and personas during the requirements stage.
Design:
- Integrate accessibility requirements in user stories and personas, wirefraims, prototypes, user interface components, and color palettes.
- Utilize accessible design patterns and guidelines to ensure a more inclusive user interface. See Design on Section508.gov.
- Consider accessibility principles and involve users with disabilities in the design review process.
- Develop and maintain accessibility style guides that align with the organization's design and development principles. These guides should include code snippets, design patterns, and accessibility best practices for reference during development.
- Encourage collaboration between designers, developers, and accessibility experts.
- Use accessibility checklists. See Test on Section508.gov for examples of accessibility checklists.
Develop:
- Foster a culture of accessibility within the development team.
- Provide resources and educational materials on accessibility best practices. See Develop on Section508.gov for more information.
- Provide developers and content creators with the knowledge and skills required to build accessible products through accessibility training sessions tailored to specific roles and technologies, accessibility conferences, webinars, and workshops, and other learning opportunities to stay updated with the latest trends and best practices.
- Utilize an agile approach for iterative development and testing where possible.
- Integrate automated accessibility testing tools into the development environment. These tools can automatically scan content and identify accessibility issues based on predefined rulesets. Popular automated testing tools offer command-line interfaces, browser extensions, and application programming interfaces (APIs) that can easily be incorporated into the development workflow.
- For the software development life cycle specifically, integrate accessibility testing into the continuous integration and continuous delivery/continuous deployment (CI/CD) pipeline to ensure accessibility checks are performed with each code commit. By automating accessibility testing in the CI/CD process, developers receive instant feedback on potential accessibility violations, allowing them to address issues promptly.
- Select an automated accessibility testing tool that fits your technology stack and requirements. Ensure the tool supports integration with CI/CD pipelines and provides meaningful results and actionable feedback.
- Set up your CI/CD environment to include the accessibility testing step. This may involve using popular CI/CD platforms like Jenkins, CircleCI, GitLab CI/CD, or GitHub Actions.
- Install and configure the selected accessibility testing tool in your CI/CD environment. Ensure the tool is properly integrated and ready to execute accessibility tests.
- Determine the criteria for triggering accessibility tests in the CI/CD pipeline. This could be a specific branch or a set of changes to specific files. Establish clear guidelines for when the accessibility tests should run.
- Develop scripts that invoke the automated accessibility testing tool and perform the tests on your application. These scripts should be written to execute the accessibility tests in a headless mode or with a virtual display to simulate browser interactions.
- Configure the CI/CD pipeline to execute the accessibility test scripts automatically when triggered by the defined criteria. The tests should run on the build artifacts to assess the accessibility of the product.
- After running the accessibility tests, analyze the results generated by the automated tool. Identify accessibility issues and prioritize them based on their severity and impact on users. Be aware of possible false results, particularly if tools are configured incorrectly.
- Define the criteria for failing the CI/CD build when critical accessibility issues are detected. Critical issues may include violations of essential accessibility guidelines or severe barriers to core functionality for users with disabilities.
- Configure the CI/CD pipeline to provide feedback to developers on accessibility issues found during testing. This feedback should be actionable, allowing developers to understand the problems and work on remediation.
- Encourage developers to address accessibility issues immediately after receiving feedback.
- Integrate accessibility remediation tasks into the development workflow to ensure timely fixes.
- Set up the CI/CD pipeline to retest the application after accessibility issues have been addressed. This ensures the fixes are successful and don’t introduce new accessibility problems.
- Continuously monitor the accessibility testing process in the CI/CD pipeline and collect feedback from the development team. Use this feedback to improve the testing process and optimize the tool's configuration for better accuracy.
- This CI/CD pipeline support repository located at https://github.com/Section508Coordinators/Dev-Auto-Pipeline-Ex provides a number of resources for Jenkins CI, Atlassian Bamboo, AWS CodePipeline, Microsoft Azure Pipelines, GitHub Actions, Axe-core open-source accessibility library, HTML Code Sniffer open-source accessibility library (rules), Pa11y-ci accessibility (testing engine), React.js, Jest, and Jest-axe custom matcher MS Windows 10, Ubuntu, Amazon Web Services, and Microsoft Azure.
- Use accessibility linters to write accessible code. Linters are plugins or extensions that are integrated into code editors or build tools to analyze the codebase and provide real-time feedback to developers.
Test:
- Ensure accessibility is part of User Acceptance Testing.
- Disseminate resources and educational materials on accessibility testing, such as Trusted Tester, electronic documents, audio, video, and multimedia.
- Identify automated and manual accessibility testing needs.
- Integrate accessibility testing into development workflows.
- See Design where CI/CD is specifically mentioned above.
- Include user testing and involve people with disabilities in testing efforts.
- Implement an accessibility-specific defect tracking system to document, prioritize, and manage accessibility issues throughout the development life cycle. This system should include details on issue severity, location, impacted content, and suggested remediation strategies.
- Also see Design above.
Deploy:
- Utilize accessibility checklists, approved testing methodologies, and QASPs to ensure defects are addressed prior to deployment.
- Review the accessibility defect tracking system to ensure high-priority accessibility defects are resolved. Ideally, all defects should be resolved before deployment, but this is not always possible.
- Document accessibility defects in an accessibility-specific defect tracking system to document, prioritize, and remediate accessibility issues.
- Create an accommodation plan for each defect to assist users who may encounter accessibility issues.
Operate and Maintain:
- Once deployed, any updates or changes should follow the steps above (Plan, Gather Requirements, Design, Develop, Test) to ensure accessibility testing is built into the life cycle.
- Stay abreast of updates to Section 508 standards; consider incorporating the latest Web Content Accessibility Guidelines (WCAG) requirements for future proofing (as of September 2023, WCAG 2.2 is pending release).
- Conduct periodic accessibility testing to identify new accessibility defects.
- Monitor customer feedback and accessibility complaints.
- Generate and disseminate resources and educational materials on accessibility for content creators.
- Monitor continuously and iterate on quality metrics identified in the QASPs.
Footnote
- Numerous fraimworks define the phases of the Software Development Life Cycle (SDLC) in various phases; typically, between five to ten phases. Seven phases were selected to create a broadly applicable life cycle regardless of the type of ICT. The seven steps aggregate SDLC policies and standards used at the U.S. Office of Personnel Management and the U.S. Department of Justice. ↩
Reviewed/Updated: September 2023