AccessHawkby Nighthawk
Methodology · Engine v2.0

How the scan works — and how the score is computed.

If a vendor or council member questions your AccessHawk grade, send them this page. Our formula is public and versioned, and we're explicit about what automated scanning can't see.

What we scan

Starting from your homepage, the scanner reads your sitemap.xml (and robots.txt) and your homepage's own links. The free scan selects up to 30 pages, prioritizing the pages residents actually use — agendas and minutes, services, permits, forms, payments, contact, employment, elections. AccessHawk Pro performs a full-site crawl: every URL in your sitemap plus every internal link discovered on every scanned page, until nothing new remains, along with every PDF encountered. Each page is fetched live and analyzed against automated checks mapped to WCAG 2.1 Level AA, the standard named in the DOJ's Title II web rule (28 CFR Part 35).

We also collect PDF documents linked from those pages and audit a sample of up to 10 PDFs at the byte level: whether the file has an accessibility tag structure (StructTreeRoot/MarkInfo), a declared document language, a title, whether it's encrypted, and whether it appears to be a scanned image needing OCR. The Title II rule covers documents, and document remediation is usually the largest hidden workload.

Stylesheet and inline-style color pairs are additionally analyzed for contrast against the 4.5:1 ratio (3:1 for large text) required by WCAG 1.4.3. We only flag combinations we can verify with certainty from your CSS — a conservative approach that produces few false positives but will not catch every contrast failure (colors composed through images, gradients, or JavaScript are excluded).

The checks

Engine v2.0 runs 25+ checks across four severity-weighted groups:

SeverityWeightExamples
Critical3Images without alt text · unlabeled form fields · links/buttons with no accessible name · undeclared page language
Serious2Low color contrast · video without captions · zoom disabled · data tables without headers · broken heading structure · timed refresh · interactive elements hidden from assistive tech · auto-playing media · untitled iframes · missing page titles
Moderate1Vague link text · forced tab order · missing main landmark · missing skip link · duplicate IDs · empty headings · redundant alt text
Documentsreported separatelyUntagged PDFs · missing document language · scanned images without OCR · encrypted files

The scoring formula

For each check we count occurrences across all scanned pages, cap any single check at 40 (so one broken template can't zero the score alone), and multiply by its severity weight. The weighted total divided by pages scanned gives an issue density d. The score is a diminishing-returns curve:

score = 100 / (1 + d ⁄ 16)

Grades: A ≥ 90 · B ≥ 75 · C ≥ 60 · D ≥ 45 · F below 45. Document results are reported alongside but do not change the page score — they're a separate workstream with separate remediation costs, and blending them would hide both.

The curve means early fixes move the number fast (exactly what a team needs to show a council) and a badly broken site can't hide behind averaging. The formula, weights, and check list are versioned; a report generated by Engine v2.0 will say so, and we don't change scoring silently.

What automated scanning cannot see — read this part

Industry measurements consistently find automated tools detect roughly a third of WCAG 2.1 AA failures. Our scan cannot judge: whether alt text is accurate, whether captions are correct, keyboard traps, focus visibility, reading order in complex layouts, cognitive load, contrast in images or over gradients, or most PDF reading-order problems. It also analyzes the HTML your server sends; content assembled entirely in the browser by JavaScript may be underrepresented — if your score looks surprisingly clean, that's a reason for human review, not celebration.

No certification, ever. A perfect AccessHawk score does not mean your site complies with WCAG 2.1 AA or the ADA, and we will never tell you it does. Anyone who sells "guaranteed compliance" from an automated scan is selling you a lawsuit. Automated scanning is triage: it finds the widespread, mechanical failures fast and cheap, so your human effort goes where it matters.

Responsible scanning

The scanner identifies itself honestly (AccessHawkBot/2.0 user agent), fetches at most 30 HTML pages, 3 stylesheets, and 10 PDFs per scan, only scans publicly reachable pages, and never attempts logins, form submissions, or anything destructive. Only public websites can be scanned — private addresses are refused.

Engine v2.0 · Methodology last updated July 22, 2026. Questions or a false positive to report: [email protected].