Elementary Standards
HTMLCSSWeb StandardsSEOBlogStart reading
Home / Blog / Fixing an Accessibility Backlog: A Remediation Roadmap for Dev Teams
Accessibility

Fixing an Accessibility Backlog: A Remediation Roadmap for Dev Teams

A practical, severity-first plan for turning a 200-item accessibility audit into shipped fixes — without blowing the deadline.

8 min read·2026-10-29·James Webb

TL;DR: Most accessibility backlogs stall not from lack of knowledge but lack of sequence: teams fix whatever's easiest instead of what blocks the most users. This roadmap sorts issues into three severity tiers, maps them to a sprint timeline, and flags the one moment most teams underestimate — when the backlog outpaces who's available to fix it.

200-item audit reportCriticalHighMedium2-week30-day90-daySprint timeline, by severity tier

Every remediation project starts the same way: an audit — automated, manual, or both — comes back with a number that looks nothing like a sprint. Two hundred issues, four hundred, sometimes more, flattened into a spreadsheet with no obvious order. The team already knows what WCAG 2.2 requires. What's missing is a way to turn a flat list into something a sprint board can actually hold.

That gap is where most remediation efforts quietly stall — not because nobody understands ARIA roles or semantic HTML, but because triaging two hundred rows by eye takes longer than most teams have, and the first sprint usually reveals that the team can't absorb this alone: fixing it properly needs hands who already read axe-core output the way a frontend developer reads a stack trace. That's a resourcing problem as much as a technical one, and bringing in standards-literate staff augmentation at YuSMP to cover the gap is usually faster than training a whole team mid-deadline or rebuilding the roadmap around who's already on payroll.

Why accessibility backlogs stall after the audit

An audit answers one question — what's wrong — and leaves three unanswered: which issues matter most, which ones touch the most pages, and which ones can be fixed once instead of two hundred times. Without that triage, teams default to fixing in file order or alphabetical order, which means the first sprint burns time on a mislabeled icon button while a keyboard trap in the checkout flow sits untouched for another three weeks.

The fix isn't a better scanner. Axe-core, Lighthouse, and WAVE are all good at finding issues; none of them rank issues by user impact, because that ranking depends on context the tool doesn't have — how many users rely on a keyboard, how central that page is to the core task, what the legal deadline actually requires. That ranking is a team decision, and it has to happen before the first fix gets written, not during.

Sort the backlog into three tiers, not one big list

A flat backlog of two hundred rows is unworkable. A backlog sorted into three severity tiers is a sprint plan. The split below maps roughly to how ARIA and semantic-HTML failures actually block users, not to how easy each fix is to ship.

Critical — blocks core functionality

Keyboard traps, missing form labels, a page with no accessible title, a modal that can't be closed without a mouse. These stop a task cold for someone using a screen reader or keyboard-only navigation. Nothing else gets scheduled until the Critical tier is empty.

High — significantly degrades the experience

Insufficient color contrast, missing alt text on meaningful images, table headers that aren't associated with their data cells. The task is still possible, but it's noticeably harder or slower for someone using assistive technology (AT) — and these issues tend to repeat across dozens of pages if they live in a shared component.

Medium — friction with a workaround

Decorative images missing an empty alt="", minor focus-order quirks on a secondary page, verbose link text that could be tightened. Real, worth fixing, but not worth delaying a launch over.

Fix global components first — header, nav, footer, forms

The single highest-leverage move in any remediation roadmap is fixing shared components before page-specific content. A broken nav landmark or an unlabeled form field in a shared template isn't one issue — it's one issue multiplied by every page that includes that component. Fix it once in the component and the count on your 200-item report can drop by dozens in a single commit.

<!-- before: no landmark, no current-page signal -->
<div class="nav">
  <div onclick="go('/')">Home</div>
  <div onclick="go('/pricing')">Pricing</div>
</div>

<!-- after: real landmark, real links, real state -->
<nav aria-label="Primary">
  <ul>
    <li><a href="/" aria-current="page">Home</a></li>
    <li><a href="/pricing">Pricing</a></li>
  </ul>
</nav>

The second version ships keyboard focus, screen-reader landmark navigation, and current-page state without a single ARIA attribute beyond aria-label — because the native elements already do the work the div-and-onclick version was trying to fake.

What does a realistic sprint timeline actually look like?

Once the backlog is tiered, the timeline follows the tiers rather than the calendar. A workable structure for a legal or compliance-driven deadline looks like this: the first two weeks clear every Critical issue and any High-tier issue that lives in a shared component — these are the items blocking tasks outright or repeating across the whole site. The following thirty days work through the remaining High-tier issues page by page, verifying each fix as it ships rather than batching verification to the end. The last stretch, out to ninety days, absorbs the Medium tier and the long-tail fixes that don't block anyone but still owe users a cleaner experience.

That sequencing matters more than the exact day counts. A team that hits day 30 having fixed every Medium-tier decorative-alt-text issue while a keyboard trap is still live in checkout has followed a calendar, not a severity order — and a regulator or a user with a screen reader will notice the difference immediately.

The code-level fixes that take longer than they look

Some of the slowest items on a remediation backlog look like one-line fixes in the audit report and turn into half-day investigations once you open the file. Swapping a clickable div for a real button is the clearest example — it looks cosmetic until you trace every place that click handler is wired up.

<!-- before: looks like a button, isn't one -->
<div class="btn" onclick="submitForm()">Submit</div>

<!-- after: keyboard, focus, and form semantics included -->
<button type="submit" class="btn">Submit</button>

The markup change is trivial. What takes real time is everything downstream of it: the CSS that assumed a div and now needs a button reset, the JavaScript that listened for click and now also needs to not double-fire on Enter, and the test suite that queried the DOM by class name instead of role. Budget for that discovery time explicitly in the sprint — it's the main reason "simple" remediation estimates run long.

When the backlog outpaces your team

Every roadmap above assumes the people doing the fixing already read ARIA patterns fluently and know a landmark region from a live region on sight. That's rarely true for an entire team on day one of a remediation sprint. The usual failure mode isn't a lack of effort — it's that two or three people on the team genuinely understand accessible markup, everyone else is learning it in real time against the same deadline, and the backlog doesn't wait for the learning curve to flatten.

When that gap shows up — and the first sprint's velocity is usually the tell — the practical options are the same as any other capacity shortfall: slip the deadline, which legal or compliance rarely allows; pull people off other work, which just moves the bottleneck; or bring in contract developers who are already fluent in the standards and can absorb the High and Medium tiers while the core team keeps shipping everything else. None of those options is free, but the third one is usually the one that doesn't cost you a second deadline six months later.

How do you verify a fix actually works?

A re-scan that comes back green is necessary and not sufficient. Automated tools catch structural issues — missing labels, contrast ratios, missing landmarks — but they can't tell you whether a screen reader user can actually complete the task, because that depends on how the fix behaves in practice, not just whether the markup validates.

Verify every Critical and High-tier fix two ways: run the automated re-scan to confirm the structural issue is gone, then walk the actual flow with a keyboard only and with a screen reader (VoiceOver, NVDA, or JAWS) to confirm the experience holds up end to end. The WCAG 2.2 Understanding documents are worth keeping open during this pass — they spell out not just the rule but the specific user scenario each success criterion is protecting against, which is exactly the context an automated scanner can't give you.

Keeping the backlog from coming back

A remediation project that ends at zero open issues and no regression testing will have a backlog again within two releases. The fix is the same discipline teams already apply to other quality gates: add automated accessibility checks to CI so a missing label or a contrast regression fails the build instead of shipping silently, and keep a lightweight manual spot-check (one flow, one screen reader, once a sprint) running alongside it. Automated checks catch the regressions that look like code; manual spot-checks catch the ones that only show up in actual use.

Frequently Asked Questions

Do I need to fix every WCAG 2.2 issue before launch?

No — Critical issues block launch because they block core tasks outright. High-tier issues should be scheduled into the first 30 days post-launch if they can't be cleared beforehand. Medium-tier issues are real debt, but holding a launch for them is rarely the right trade.

Should automated scan results drive the whole roadmap?

Automated scans are the input, not the plan. They find structural issues reliably but can't rank them by user impact or confirm a fix actually works for someone using assistive technology — that triage and verification still has to be done by a person.

How long does a typical remediation sprint take?

For a mid-sized site with a few hundred flagged issues, a realistic structure is two weeks for Critical fixes, thirty days to clear High-tier issues, and up to ninety days for the full Medium-tier tail — shorter if the issues are concentrated in a small number of shared components.

What's the difference between remediation and a full redesign?

Remediation fixes existing markup and components to meet a standard without changing the product's visual design or information architecture. A redesign is a much larger, slower undertaking and isn't necessary to resolve the vast majority of WCAG 2.2 findings.

Can AI tools auto-fix accessibility issues?

They can suggest fixes — alt text drafts, ARIA attribute corrections — but every suggestion still needs a human to confirm it matches the actual content and behavior of the page. Treat AI output here the way you'd treat a junior developer's first pass: useful, not yet mergeable.

A remediation backlog is never really about the number of rows in the report. It's about whether the team has a sequence that matches user impact, a timeline that respects that sequence, and enough hands who can execute it before the deadline matches the calendar instead of the risk. Get the tiering right and the rest of the roadmap mostly writes itself.

Back to the blog
More notes

Keep reading