Mindset · Leadership · Remediation

Perfect Is the Enemy of Accessible: Why Shipping Beats Scoring

Illustration of a small paper airplane labeled with a checkmark flying past a large, unfinished trophy labeled 100 percent, in an oxblood and cream editorial style
  • Mindset
  • Leadership
  • Remediation

Somewhere right now, there is a team sitting on a finished audit report. Nobody has shipped a single fix from it. Not because the team is lazy or the report is wrong, but because the plan does not feel complete yet. Someone wants one more review pass. Someone wants to batch every fix into a single, tidy release. Someone is waiting for the number at the top of the report to say 100.

Meanwhile, a real person hit a real keyboard trap on that same site this morning. They tabbed into a modal, could not tab back out, and closed the tab. They did not file a ticket. They did not wait for the roadmap. They just left.

Ship the fix. The perfect audit can wait.

The Stat: Deque's own published research puts automated accessibility scanning at catching roughly 57.38% of WCAG issues on its own, which means even a full, well-run audit will surface new issues over time as a site changes - there is no single moment where a site is finished. (Source: Deque)

Wait for perfect vs. ship the top fixes now A comparison diagram showing two paths: the left path, waiting for a perfect audit, results in weeks passing, nothing shipping, and users staying stuck. The right path, shipping the top three fixes now, results in days passing, real users being unblocked, and the next three fixes queued. Wait for the perfect audit Ship the top 3 fixes now Weeks pass Nothing ships Users still stuck Days pass Real users unblocked Next 3 fixes queued

The trap of the "finished" audit

Accessibility work has a strange gravitational pull toward perfectionism. It is easy to understand why. WCAG success criteria feel like a checklist, and checklists feel like they should be completed in order, top to bottom, before you move on to anything else. So teams treat an audit report the way they might treat a school exam: something to pass in full, not something to work through in pieces.

But an audit was never meant to be a pass/fail gate. It is a map of where real people are currently getting stuck. And a map does not need to be perfect before you start walking. It needs to point you toward the nearest obstacle first.

The W3C's own WCAG conformance requirements organize success criteria into three separate levels, A, AA, and AAA, rather than collapsing everything into one score. That structure is not an accident. It exists precisely so teams can conform to the criteria that matter most first, without needing to hit every possible criterion, at every level, in a single pass. The documentation even explicitly does not recommend AAA as a blanket policy for an entire site. Read that carefully: the standard itself is telling you that shipping the highest-impact fixes first is the intended approach, not a shortcut you are taking because you ran out of time.

If the people who wrote the standard do not expect a single perfect pass, why do so many internal teams expect it of themselves?

Why "100%" is a moving target anyway

Here is the part that makes waiting for perfection even more counterproductive: there is no fixed finish line to wait for.

Deque's published research on automated accessibility testing coverage found that automated scanning alone catches roughly 57.38% of WCAG issues. That number matters for two reasons. First, it means a chunk of real issues will only ever surface through manual testing, assistive technology use, or actual user reports, not a tool scan. Second, and just as important, it means your site keeps generating new potential issues every time a page changes, a new component ships, or a third-party script gets added.

In other words, "100% compliant" is not a mountain you summit once and plant a flag on. It is closer to weeding a garden. You never finish; you just keep the weeds that matter most under control while new ones sprout. A team that refuses to ship anything until the garden is entirely weed-free will simply never ship, because the garden will never stop growing.

What "shipping beats scoring" actually looks like

This is not an argument for sloppiness. It is an argument for sequencing. The goal is not "ship anything, ignore the plan." The goal is: ship the fixes that unblock real people first, then keep going.

Here is a simple way to sequence a fresh audit report so the highest-impact items go out fastest:

Priority What it usually looks like Why it goes first
1. Total blockers Keyboard traps, missing focus indicators, forms with no labels These stop a task completely - no workaround exists for the user
2. High-traffic barriers Broken nav landmarks, unlabeled buttons on checkout or signup Small fix, but touches the pages with the most real traffic
3. Screen-reader confusion Missing alt text, unannounced dynamic content, bad heading order Frustrating and slow, but a workaround sometimes exists
4. Polish and AAA-level extras Enhanced contrast beyond AA, extra context on links Real value, but nobody is fully blocked without it

Notice that nothing on this list requires the whole audit to be "done" before you touch it. Priority 1 items can ship this week. Priority 4 items can wait a quarter. That is not cutting corners; that is triage, and triage is exactly what emergency rooms, incident response teams, and good engineering orgs already do everywhere else in the business.

A practical checklist for turning a report into a shipping plan:

  • Sort every finding by "does this fully block a task" versus "does this slow a task down"
  • Ship the full-block items within days, not sprints
  • Group the slow-down items by page traffic and fix the highest-traffic pages next
  • Schedule a recurring re-scan, since new issues appear every time the site changes
  • Resist the urge to hold a fix hostage until a "bigger batch" is ready

The real cost of waiting

Every week spent polishing the plan instead of shipping the first fix is a week where the keyboard trap is still there. The unlabeled form field is still there. The screen reader user who cannot find the submit button is still there, today, right now, on your live site.

That cost compounds quietly. A blocker that sits open for a month does not just affect the people who hit it this month. It affects everyone who tries that same task next month, and the month after, until someone finally decides the plan is "ready enough" to act on. Waiting rarely buys a better fix. It usually just buys a longer list of people who never got past the same broken step, plus a growing backlog that makes the eventual full pass feel even more overwhelming than it needed to be.

There is also a quieter cost inside the team itself. We've talked before about how chasing 100% compliance burns teams out - when the bar is "perfect or nothing," momentum dies, morale drops, and the whole initiative starts to feel punishing instead of productive. Shipping small, real wins does the opposite. It builds the habit of fixing things continuously, which is the only habit that actually keeps a site accessible over time, since the target never stops moving anyway.

Perfect audits look great in a slide deck. Shipped fixes look great in a screen reader user's actual afternoon. Only one of those is the point.

Ship the next fix today

You do not need a finished report to know what to fix next. You need to know what is blocking someone right now, and you need to fix that first. If you want that priority order handed to you instead of guessed at, get a prioritized audit so you know exactly what to ship first and turn your backlog into a queue of real, shippable wins.

Want to talk it through with a person first? Our team is reachable directly at experts@wcag.world, and we are happy to help you figure out which three fixes to ship this week, not which hundred to plan for someday.