Who does what, and when, so accessibility isn't left to the end
How to plan accessibility into a web project, build it into the design system's components first, test it in every cycle, share the work across roles from management to content authors, and keep it after launch.
In short: Plan it: a target level in the definition of done, a named owner, a budget and training. Create it: accessible components first, so every page starts from them. Test it in every sprint, by automated checks in CI and by hand, not once before launch. Then keep checking new content and releases after launch.
01
When you need this
A charity is rebuilding its website with an agency: donations, volunteer sign-up and event pages, in 6 two-week sprints, with launch in 12 weeks. The contract says WCAG 2.2 Level AA. On the last rebuild, the first accessibility audit came 2 weeks before launch. It found 60 issues, most of them in the shared header, form fields and dialogs, and launch slipped by a month while the agency reworked code it had finished in sprint 2.
This time the charity's digital lead wants accessibility in the plan from the first day, with each person on both teams knowing what is theirs.
02
Plan: the target, the owner and the definition of done
The W3C's planning guide sets out the decisions to make first:
- The target. At a minimum, the policy states "what web accessibility standard you aim to conform to and by when". Write it into the contract and into the definition of done. The law or a contract may set the level; what it takes for a page to conform to WCAG covers what a level requires.
- The owner. "Responsibility for delivering accessibility needs to be assigned to specific individuals and incorporated into their job description", which gives them the time and the training. One named person decides when the target and the schedule clash.
- The budget. Reviews, training, audits and testing with users, each with time in the schedule. A budget with no time to fix what the audits find buys a report, not a site.
- The training. For each role what it needs: the W3C lists accessible visual design for designers, accessible coding for developers and testers, and writing accessible content for content authors.
- What you buy. Components, widgets and platforms bought in are part of the site. Ask for their accessibility before signing, as reading a vendor's VPAT before you buy, and what to ask next explains.
The definition of done turns the target into checks a story has to pass. A short one, the same for every story:
- It is built from design-system components, or adds new ones with their own accessibility tests.
- The automated checks in CI report no new failures.
- Every control works with a keyboard alone, in an order that matches the screen, with a visible focus indicator.
- The story's task works with the screen reader and browser the team agreed on.
- It works at 200% zoom and at 320 CSS pixels wide.
- Its headings, link text, labels and text alternatives have been reviewed.
03
Create: components first, then pages
Most of what an audit finds on a finished site is the same few components failing on every page. So build and test the shared parts before the pages that use them. The W3C's implementation guide advises prioritising "the development of accessible templates and components to support the creating of accessible content", and its planning guide makes maintaining "code libraries with accessible components" a development responsibility.
- Buttons: a native
buttonas the component library's default, so no page gets adivthat Tab never reaches, as in div buttons that can't be reached with Tab. - Focus: one focus indicator in the design system's tokens, so a reset can't remove it page by page, as in missing focus indicators on custom buttons.
- Form fields: a label as a required property of the shared field component, with the
forandidgenerated together, as in form fields with missing or mismatched labels. - Dialogs, menus, tabs: the interactive patterns, each with its keyboard behaviour written into the component, not into each page.
Designers hand over more than pictures: the W3C maturity model's proof points include design deliverables that carry accessibility information and annotations, such as the heading structure, the focus order, each control's name and its states. Content authors write the headings, link text and text alternatives the components can't.
04
Test: in every sprint, not at the end
The W3C's advice is to "Find and fix issues early in the process to reduce risk and cost", and to fold the checks into the testing the team already does rather than run them separately. Where the checks go depends on how the project runs:
| Way of working | When accessibility is checked | What a late find costs |
|---|---|---|
| Waterfall | Requirements and designs reviewed against the target, then one test phase after the build | A problem in a shared component surfaces when every page uses it; the fix reopens design, code and test |
| Agile | In each story's definition of done, every sprint, and in a fuller review at milestones | A problem surfaces in the sprint that made it, while the code is fresh |
| Continuous delivery | Automated checks on every change, and a documented cadence of manual tests between releases | A change ships with the checks it passed, and the manual cadence catches the rest |
In each of them, 3 kinds of test do different jobs:
- Automated checks in CI, on every pull request. They catch missing names, invalid ARIA, contrast in code and similar failures cheaply and every time, and they can't judge most of the rest, as what automated checks miss explains.
- Manual tests, every sprint, on the new components and on the key tasks: keyboard alone, a screen reader, zoom and reflow. This is where focus order, announcements and whether a task can be finished get checked.
- Regression tests, for what already works. A component's tests check its name, role, states and keys after every change; before each release, the key tasks are run again by hand. A release gate keeps a known blocker from shipping because nobody stopped it.
Testing with disabled people finds what none of these do, as what testing with disabled people finds that an audit doesn't explains, and is worth a place in the plan from the first prototype.
05
Who does what
The W3C's roles mapping names the roles involved in accessibility; the planning guide adds purchasing and acceptance testing. In a project, each owns a part:
| Role | Owns |
|---|---|
| Management and governance | The policy, the target and its date, the budget, and a named owner |
| Product owner | Acceptance criteria, the priority of accessibility bugs, and the definition of done, agreed with the whole team |
| Project manager | Estimates and a schedule that include accessibility work and testing |
| User experience researcher | Disabled participants in research and testing |
| User experience designer | Structure, focus order and keyboard interaction, annotated for developers |
| Visual designer | Contrast, focus indicators, and states that don't rely on colour alone |
| Content author | Headings, link text, text alternatives, captions and plain wording |
| Front-end developer | Semantic HTML, accessible components, names and states |
| Back-end developer | Error messages, time limits and the data that shapes what a page can say |
| Quality assurance | Automated and manual tests, regression tests, and tracking accessibility bugs |
| Purchasing and contracts | Accessibility requirements in contracts for anything bought in |
| Support | A way for people to report barriers, and a route to the team that fixes them |
06
After launch: new content and regressions
Launch is when the site starts changing without the project team. "Changing content can introduce accessibility issues", and the W3C's advice for sustaining the work is:
- Check at publishing. "Include accessibility checks within the publishing process to help reduce the risk of issues occurring", in the CMS and in the author's own review.
- Review regularly. "As your website content changes, ensure that regular accessibility reviews are performed", and ask why each issue happened: training, a CMS change, or an unclear process.
- Retest releases. Keep the CI checks and the regression tests running on every release; the maturity model's highest level includes maintenance releases that are re-inspected for accessibility.
- Listen. "Invite user feedback", train first-line support to handle it, and tell the person who raised an issue when a fix is expected. The accessibility statement is where people find that route, as in accessibility statements that are missing or say nothing.
07
Worked example
The charity's 12 weeks, planned this way:
| When | What happens | Who |
|---|---|---|
| Sprint 0 | WCAG 2.2 AA written into the contract and the definition of done; the digital lead named as owner; half a day of training for each role; external reviews booked for sprints 3 and 6 | Management, product owner, project manager |
| Sprints 1 and 2 | Button, field, dialog, menu and focus token built and tested with a keyboard and a screen reader before any page uses them; designs annotated | Designers, front-end developers, quality assurance |
| Sprints 3 to 5 | Pages built from the components; CI checks on every pull request; each story's task tested by hand; the external review in sprint 3 covers donation and sign-up | Developers, content authors, quality assurance |
| Sprint 6 | Full review of the key tasks; regression run; release gate: no open blockers | Quality assurance, external reviewer, product owner |
| After launch | Publishing check in the CMS; quarterly review of the 10 busiest pages; feedback by email from the accessibility statement | Content authors, support, the owner |
The result: the sprint 3 review finds a dialog that doesn't return focus, while 1 page uses it; it is fixed in a day. The launch review finds 9 issues, none of them blockers and none in the shared components, and the site launches on its date. In the first quarter after launch, the publishing check catches 14 images uploaded without text alternatives before they go live.
08
Common mistakes
- Testing once, before launch. Every problem then surfaces at the most expensive moment. Put the checks in the definition of done and test every sprint, as above.
- Leaving it to the developers. Contrast, headings, link text and captions are decided by designers and content authors. Give each role its part, as in the table above.
- Building pages before components. A page-level fix leaves the component broken for the next page. Fix and test the shared part first, as form fields with missing or mismatched labels does with its field component.
- Treating a green CI run as done. Automated checks pass pages that a keyboard or screen reader user can't finish. Keep the manual tests in the definition of done; what automated checks miss shows why.
- Stopping at launch. New content and later releases bring new failures. Keep the publishing checks, the regression tests and a feedback route running.
- Fixing the audit, not the process. After an audit, fix the findings in order, as which findings to fix first, and when to rebuild instead explains, and ask why each happened, so the next project doesn't repeat it.
09
What the standard says
No accessibility standard requires a particular project process. WCAG, EN 301 549, Section 508 and JIS X 8341-3 set what the result must meet; how a team gets there is advice.
- W3C WAI, Planning and Managing Web Accessibility (advice): the Plan, Implement and Sustain activities quoted above: a policy stating the standard and the date, named responsibilities, a secured budget, training by role, evaluation "throughout the design and development process", and monitoring after launch.
- W3C Accessibility Roles and Responsibilities Mapping (advice): the roles the table draws on, from business analysis and content authoring to governance. It is guidance for dividing the work, not a requirement.
- W3C Accessibility Maturity Model (W3C Group Note, advice): the ICT Development Lifecycle dimension says accessibility "should be considered throughout the entire ICT development lifecycle: from idea conception to design, development, testing", and its proof points include "accessibility is identified as a product release gate" and "documented testing steps and cadence for agile delivery of changes without a full release cycle". At its Optimize level, automated accessibility testing is part of the CI/CD pipelines and maintenance releases are re-inspected.
- Japan (advice): the Ministry of Internal Affairs and Communications' guidelines for public websites (2024 edition) set out the same cycle for public bodies: yearly work (updating the guidelines, training, testing, user evaluation, improvement), day-to-day work (following the guidelines when a page is made, checking it before it is published, and collecting users' comments), and, for a site built by a contractor, checking at several stages from the design to just before launch, a JIS X 8341-3:2016 test, and acceptance only after its result has been checked.
10
Limits
This page divides the work; it doesn't define the target level, which the law, the contract or the organisation's policy sets, or decide whether the finished site conforms, which takes a test as in testing a whole site against WCAG, and standing behind the result. The roles are a starting point: a small team may have one person in 4 of them, and what matters is that each part has someone. What the CI checks can and can't find is on what automated checks miss.
11
Terms
- definition of done
- The checks every piece of work has to pass before the team calls it finished, written down and the same for every story.
- design system
- The shared components, tokens and guidance a product's pages are built from, so a fix made in it reaches every page.
- regression test
- A test run again after each change, to catch a fixed or working feature that a later change broke.
- release gate
- A check a release must pass before it ships, so a known blocker can't go live by default.
12
Sources and guides
- Advice Planning and Managing Web Accessibility: Plan (W3C WAI): Create accessibility policy; Assign responsibilities; Determine budget and resources (opens in a new tab)
- Advice Planning and Managing Web Accessibility: Implement (W3C WAI): Build skills and expertise; Assign tasks and support delivery; Evaluate early and regularly; Prioritize issues (opens in a new tab)
- Advice Planning and Managing Web Accessibility: Sustain (W3C WAI): Monitor websites; Incorporate user feedback (opens in a new tab)
- Advice Accessibility Roles and Responsibilities Mapping (W3C WAI): Roles Involved in Accessibility (opens in a new tab)
- Advice W3C Accessibility Maturity Model (W3C Group Note, 4 November 2025): 3.2 ICT Development Lifecycle (opens in a new tab)
- Advice Guidelines for Operating Public Websites, 2024 edition (Ministry of Internal Affairs and Communications, Japan): 6.2 Yearly work, 6.3 Day-to-day operation, 6.4 Ordering from outside contractors (opens in a new tab)
Guides that show it
- Div buttons that can't be reached with Tab A pointer-only control prevents keyboard users from saving their work.
- Missing focus indicators on custom buttons A reset removes the outline and leaves no visible replacement.
- Form fields with missing or mismatched labels A delivery form looks labelled, but one label is loose text, one points at the wrong id and one aria-label differs, so the visible words aren't the names.
This page explains a practice, with recreated examples. It is not legal advice, and it is not a finding about a named client.