Back to reviews and guides

How to Fix Section 508 Accessibility Violations on Your Website

A practical guide to website remediation for Section 508 compliance. It shows how to audit, prioritise, fix and verify accessibility violations using a decision framework, a step-by-step remediation workflow with acceptance criteria, and a final checklist.

Website remediation for Section 508 compliance starts with a clear plan and ends when each defect has measurable acceptance criteria. This guide explains how to find violations, decide what to fix first, carry out changes, and prove your site meets Section 508 technical standards that reference WCAG 2.0 Level AA.

What Section 508 requires and how it relates to WCAG

Section 508 requires federal electronic information and services to be accessible. The Section 508 technical standards reference WCAG 2.0 Level AA as the baseline. Many organisations now aim for WCAG 2.1 Level AA or later best practice, but the legal baseline for Section 508 is the 508 technical criteria.

Audit and inventory: the first step

Before you fix anything, you must know what to fix. A good audit gives you a complete inventory and traces each violation to a page, component, and code location.

What a useful audit contains

  • Page-level inventory with URLs and page templates
  • Component inventory for headers, menus, forms, widgets and PDFs
  • Type and priority of each issue with a short description and code snippet or DOM path
  • Proof: screenshots, automated tool output, and at least one manual verification step

Combine automated scans with manual checks

Automated tools find many issues quickly. They miss keyboard behaviour, logical reading order, and some ARIA misuse. Manual checks must include keyboard-only navigation, screen reader sampling, and form interaction tests.

How to prioritise Section 508 violations

Not all accessibility defects have equal impact. Use a simple decision framework to choose the order of fixes. That saves time and reduces risk.

Decision framework: impact, frequency, effort

Rate each issue on three axes:

  • Impact: Does the defect block a task? (high, medium, low)
  • Frequency: How many users or pages are affected? (site-wide, many pages, single page)
  • Effort: Estimated developer time to fix and test (hours or days)

Combine the ratings. Fix high impact, site-wide defects first. Then address issues that are high impact but local to key transactions.

Priority Typical profile Action
Priority 1 Blocks task; site-wide; low to medium effort Fix immediately and deploy hotfix
Priority 2 Major impact; many pages; medium effort Schedule within next sprint
Priority 3 Minor impact; single page or rare flow; low effort Bundle into regular releases

Step-by-step remediation workflow with acceptance criteria

This workflow reduces rework and provides clear pass/fail conditions for each fix.

  1. Triage

    Assign an owner, set priority using the decision framework, and add a brief remediation note describing the required change.

  2. Code change

    Developer implements the fix and includes a short dev note. Keep commits small and focused per issue.

  3. Unit test and component test

    Add automated tests where feasible, for example keyboard focus order tests or accessible name checks for components.

  4. Manual verification

    A tester performs targeted manual checks: keyboard-only navigation, screen reader sample, contrast check, and form behaviour.

  5. Acceptance criteria

    Record explicit pass conditions. Examples:

    • Images have non-empty alt attributes for decorative images use empty alt=“”
    • All interactive controls are reachable and operable using Tab and Enter/Space
    • Text meets contrast ratio of 4.5:1 for normal text and 3:1 for large text where applicable
    • Form fields have programmatic labels and error messages are announced
  6. Regression and deploy

    Include the fix in the release pipeline and run a small regression suite on key pages after deploy.

  7. Close ticket with evidence

    Attach screenshots, test steps, and a short screen reader audio note if relevant. Update the audit record to show the issue closed.

Common Section 508 violations and practical fixes

The following issues appear on most sites. The fixes are pragmatic and repeatable.

1. Missing or incorrect image alt text

  • Fix: Provide meaningful alt text for informative images. Use alt=“” for purely decorative images.

2. Keyboard traps and focus problems

  • Fix: Ensure all interactive controls are reachable by Tab. Use JavaScript to manage focus for modal dialogs and return focus on close.

3. Insufficient colour contrast

  • Fix: Adjust colours or use larger text. Test using a contrast tool aimed at WCAG 2.0 Level AA thresholds.

4. Missing form labels and ARIA misuse

  • Fix: Use native label elements linked to inputs. Use aria-label or aria-labelledby only when a visible label is not possible. Avoid using ARIA to fix underlying semantic markup problems.
  • Fix: Replace generic link text such as “click here” with descriptive phrases that reveal the link target.

6. Unstructured headings and reading order

  • Fix: Use a logical heading hierarchy (h2, h3) and ensure DOM order matches visual order.

7. Inaccessible documents and PDFs

  • Fix: Provide an accessible HTML alternative. Remediate PDF structure or tag the PDF and add metadata and text alternatives.

Testing: tools and methods

Testing must combine automated checks, manual reviewer steps, and assistive technology sampling.

Automated tools

  • Use a site crawler to find common failures fast
  • Run rule-based linters during CI for components

Manual checks

  • Keyboard only: navigate full user journeys using Tab and Shift+Tab
  • Screen reader sample: test a login, search, and a transaction with NVDA, VoiceOver, or JAWS as appropriate
  • Mobile: test touch targets and focus on mobile browsers

Acceptance testing

Define a small set of end-to-end test cases that must pass before declaring a page remediated. Each case should reference the specific Section 508 criterion or the related WCAG success criteria.

Reporting, documentation and audit trails

Build a remediation tracker that ties each ticket to the original audit item and stores evidence. A simple tracker includes these fields:

  • Issue ID and page URL
  • Description and Section 508 / WCAG mapping
  • Priority, owner, ETA
  • Code commit ID and release number
  • Evidence: screenshots, automated report, manual test steps
  • Status and close date

Estimating time and assigning resources

Estimate work by counting issue types rather than pages. A single component used site-wide will take longer to fix but reduces repeated work later. Use a small cross-functional team:

  • Product owner to prioritise
  • Developer to implement fixes
  • Accessibility tester for manual verification
  • QA to run regression tests

When budgeting, include time for manual testing and documentation, not just development.

Maintaining compliance: procurement and continuous monitoring

Make accessibility a continuous process. Add automated checks to CI, require accessible components in your design system, and include accessibility acceptance criteria in tickets.

When procuring third-party software, require the vendor to provide an accessibility conformance report and remediation commitments. Keep a record of any known limitations in your accessibility statement.

Final checklist before you declare a page remediated

  • Audit record updated with evidence
  • Acceptance criteria met and documented
  • Manual keyboard and screen reader checks completed
  • Automated tests added where feasible
  • Regression tests passed after deploy
  • Issue closed in the remediation tracker

Following this plan gives you a repeatable, risk-focused route to fix Section 508 accessibility violations. Prioritise barriers that prevent access to essential tasks, keep evidence, and make accessibility part of your regular release rhythm.