Instructions
Parameters
The main form has URL, Mode, Crawl Preset, Report Audience, Platform, WCAG and Level. Everything else is under Advanced Settings: Settle ms, Max pages, Max depth, Audit Profile, Strict, Sitemap URL, Exclude Rules, Skip linked PDFs and Count embedded content.
| Field | What It Does | UI Default |
|---|---|---|
URL | Start URL to scan. If you enter without scheme, app uses HTTPS. Not shown in URL List mode — the first URL from the uploaded file is used automatically. | (empty) |
Mode | single scans one page, crawl follows same-site links, sitemap reads sitemap URLs, URL List scans a curated set of URLs from an uploaded file. | crawl |
Crawl Preset | Sets Settle ms, Max pages and Max depth together. Conservative: 10 pages, depth 2, 3000 ms. Standard: 50 pages, depth 3, 2000 ms. Broad: 200 pages, depth 4, 3000 ms. Changing any of the three in Advanced Settings switches it to Custom. Not shown in URL List mode. | Standard |
Scan Title | Optional label shown in the report header. Only available in URL List mode. If left blank, the first URL from the list is used as the title. | (empty) |
URL List File | Upload a .txt or .csv file containing the URLs to scan. One URL per line; blank lines and lines starting with # are ignored. Only the exact URLs provided are scanned — no link following or depth crawling. Capped by Max pages (in Advanced Settings); the form shows the cap under the upload. | — |
Audit Profile | WCAG uses WCAG tag set only. Extended runs wider axe rule set. | WCAG |
Report Audience | Developer shows full technical detail. Client shows a simplified executive-friendly report. Client+ shows the client report plus Top 10 Issues (sitewide) and an enhanced All Pages table with an Issues count and Rules columns. The audience also sets the PASS/FAIL rule (see Reading the Results). | Developer |
WCAG | Target version for tags. | 2.2 |
Level | Conformance level tag filter. | AA |
Strict | Which confirmed failures cost points. Y uses all of them. N uses critical and serious only. NN uses critical only. YM also counts the items marked To review. See How Scoring Works. | Y |
Scoring weights | Points lost per failing rule: critical 10, serious 6, moderate 3, minor 1. In YM mode the same weights also apply to items marked To review. | — |
Platform | Viewport/device profile used for scan rendering. | desktop |
Settle ms | Extra wait after page load before audit starts. | 2000 |
Max pages | Maximum pages collected in crawl/sitemap mode, or maximum URLs scanned in URL List mode. | 50 |
Max depth | Maximum crawl depth from the start URL. Not used in URL List mode. | 3 |
Sitemap URL | Optional explicit sitemap URL when mode is sitemap. | (empty) |
Exclude Rules | Comma-separated axe rule IDs to disable, e.g. color-contrast,target-size. | (empty) |
Skip linked PDFs | Skips links ending in .pdf during crawling. Other addresses that turn out to download a file are marked NOT SCANNED (see below). | Checked |
Count embedded content | Whether issues inside content from other sites (a YouTube player, a map) count toward the score, the PASS/FAIL result and the issue counts. When off, they are still listed, separately, and the report shows the score both ways. The same rule applies to every audience. Saved with a schedule and can't be changed afterwards, so its trend stays comparable. | Unchecked |
Typical Runs
- Single page: Set
Modetosingleand enter page URL. - Site crawl: Keep
Modeascrawland pick aCrawl Preset, or setMax pagesandMax depthunder Advanced Settings. - Sitemap scan: Set
Modetositemapand provide sitemap URL if needed. - Curated URL list: Set
ModetoURL List, optionally enter aScan Title, then upload a.txtor.csvfile. Each URL in the file is scanned individually — no crawling or link following occurs.
Reading the Results
| Item | What It Means |
|---|---|
| Accessibility Score | Each scanned page starts at 100 and loses points per failing rule, using the scoring weights above. The overall score is the average across scanned pages. It is 100 only when every page is clean; otherwise it is at most 99. By default, issues inside embedded content from other sites are not counted; the report shows the score including them underneath. Full explanation: How Scoring Works. |
| PASS / FAIL | PASS means no critical issue on any scanned page, the same for every report audience. The Strict setting changes the score only. Embedded content from other sites counts only if Count embedded content is checked, the same as for the score. |
| Developer report | The same header as Client+ (Automated Result, score, pages scanned), plus To Review. Counts are elements by severity (critical, serious, moderate, minor), the same unit as the Top 10's Elements column. Lowest-Scoring Pages lists the ten pages with the lowest scores; each page links to a detail report grouped by severity. |
| NOT SCANNED: refused | The site refused the scanner (HTTP 401, 403, 407, 429 or 503, or a block page such as "Access Denied"). The page is listed but left out of the score, the PASS/FAIL result and Pages Scanned. The job shows Challenge detected. |
| NOT SCANNED: couldn't be loaded | The page didn't load (for example a timeout or a dropped connection). It is listed but left out of the score, the PASS/FAIL result and Pages Scanned. If many pages are affected, run the scan again. |
| NOT SCANNED: hidden behind a pop-up | A consent or terms pop-up covered the page and the scanner couldn't close it. Left out the same way. |
| NOT SCANNED: file | The address downloads a file (a PDF or Word document) instead of showing a web page. It is listed but left out of the score, the PASS/FAIL result and Pages Scanned. |
| Screenshots | Where turned on for the report audience, each page's report shows a picture of what the scanner saw when it checked the page, and All Pages links to it. If a consent or terms pop-up covered the page, the report also shows it as loaded, before the scanner closed it. Screenshots are deleted with their report. |
| Skipped while crawling | Images, stylesheets, scripts and similar files, and WordPress system addresses that aren't pages people read: feeds (/feed/), the REST API (/wp-json/), xmlrpc.php, /wp-admin/ and wp-login.php. |
Scheduling Jobs
Where the scanner is open to everyone, scheduling scans, cancelling or deleting jobs and changing compliance settings require signing in with a Spruce Microsoft account; running a scan and viewing results do not.
Click Schedule Job (below the Run Scan button) to expand the scheduling panel. Configure the scan parameters as usual, then set schedule options and click Confirm Schedule.
| Field | What It Does |
|---|---|
Frequency | Once fires on a specific date. Weekly repeats on selected day(s). Monthly repeats on a chosen day of each month. Quarterly repeats on a chosen day every quarter. |
Date | For Once: the calendar date on which to run the scan. |
Day(s) of week | For Weekly: one or more days (Sun–Sat) on which to run. |
Day of month | For Monthly / Quarterly: which day of the month to run (1–28; capped at 28 to avoid month-end gaps). |
Starting month | For Quarterly: selects which set of months in the year — e.g. Jan/Apr/Jul/Oct, Feb/May/Aug/Nov, or Mar/Jun/Sep/Dec. |
Time | Wall-clock time in the selected timezone when the scan fires. |
Timezone | The timezone used to interpret the scheduled time. Defaults to Eastern (ET). |
Notification Email(s) | Comma-separated email addresses that receive a confirmation on creation and a result notification after each run. |
- Active schedules appear pinned at the top of the Jobs list with a SCHEDULED badge. Use the Scheduled filter to see only schedule entries.
- Click the ✕ button on a schedule card to cancel it (it stays visible with a CANCELED badge). Click the trash icon to remove a canceled/done schedule permanently.
- Result notification emails include a link to the report and a note that reports are deleted after 30 days.
- Report links in the emails ask the reader to sign in, so each recipient needs an account on this site.
- Schedule definitions are stored in
data/schedules/and are not subject to the job retention sweep.
Compliance History
The Compliance History page tracks accessibility scores over time for URLs you designate. Use it to demonstrate improvement trends or catch regressions.
| Feature | How It Works |
|---|---|
| Tracking a scan | Expand a completed job card in the Jobs list and check Include in compliance history. The scan is then included in the trend chart for that URL and scan settings combination. |
| Scheduled runs | Scheduled jobs default to Include all runs in compliance history (checked). Uncheck it in the Schedule Options panel before confirming if you do not want scheduled runs counted. |
| URL identity | Each URL is tracked per unique combination of: URL, WCAG version, Level, Mode and Audience. The same URL scanned at WCAG 2.1 AA and WCAG 2.2 AA will appear as two separate tracked entries. Scans with Count embedded content checked are tracked separately too, marked "embedded content counted". Older runs from before embedded content was left out are marked in the chart's hover note. |
| Drop threshold | A data point is flagged in red when the score drops by at least this many points compared to the previous run. Default is 5. You can change it per URL from the Compliance History page — it is saved on the server. |
| Chart | Blue line = score over time. Red dot = drop ≥ threshold. Purple dot = scheduled run. Gray dot = manual run. Click any data point to open its report (if not yet expired). |
| Time range | Use All / 90d / 30d buttons to filter the chart to a window. |
| Duplicate schedules | Creating a second active schedule for the same URL+WCAG+Level+Mode+Audience combination is blocked. Cancel the existing schedule first, or change one of the scan settings. |
| Run now | The ▶ button on an active schedule runs one scan straight away with that schedule's settings, for example to retry a run the site refused. It counts as a scheduled run (Compliance History, "Last run"); the next scheduled time doesn't change. The result email goes only to the person who clicked. If the last run was refused by the site's firewall, the schedule card says so and the confirmation warns that running again may be refused too. |
| Editing a schedule | Click the pencil icon on an active schedule card to edit its frequency, time, timezone, notification emails, and compliance history setting. Report Audience, WCAG version, and Level are shown grayed out and cannot be changed — they are locked to keep all runs in a schedule comparable. To change them, cancel the existing schedule and create a new one. |
US WCAG Compliance Map
On wcag.sprucetech.com only (signed in), from the US Map link. It shows each senator's website score from Compliance History.
| Feature | How It Works |
|---|---|
| Map | Each state is coloured by the average score of its two senators' websites, in five steps from orange (under 70) to dark green (95 to 100). Hatched states have no score yet. Point at a state, or move to it with Tab, to see its senators; select it for details, links and Compliance History. |
| Scores | The latest Compliance History run for each website, using the same settings as the existing senator schedules (shown under the map). Runs with other settings, or that count embedded content, are not used. |
| Leaderboard | All senators from best to worst score; equal scores share a rank. Senators not scanned yet are listed after, by state. |
| Add to schedule | One button per senator not scanned yet. It copies the settings, frequency and emails of the other senator schedules, gives the new schedule an overnight day and time as far as possible from the others, and runs one scan now. |
| Senator list | Check senate.gov for changes reads the Senate's official list and shows who is new, who left and what changed; nothing is saved until you apply it. A senator who leaves keeps their Compliance History, and their schedule is not cancelled automatically. You can also edit a senator's website by hand. |
Notes
- Automated scans detect many issues, but not all accessibility requirements; manual review is still required.
- If a crawl only finds one page, or a job shows Challenge detected, the site's bot protection (for example Cloudflare or Akamai) refused the scanner for some pages. Those pages are marked NOT SCANNED.
- Scans run one at a time; the rest wait in the queue.
- SSL certificate errors are ignored automatically, so staging and development sites with self-signed or expired certificates scan without issue.
- Run history is in the Jobs list on the Scanner page; score trends over time are in Compliance History.
- Powered by axe-core.