GatekeeperQA

WEBSITE ACCESSIBILITY TESTING

Accessibility reports and retest tracking for QA teams and agencies.

Find accessibility issues, share evidence with developers, and track what changes after a fix.

START WITH ONE PAGE · NO SIGN-UP NEEDED

Confirm permission on the next screen, then start your scan.

Checking shared capacity…

Status refreshes every minute. Capacity is not reserved; personal and network limits apply.

Scan allowance used up? Explore the sample or run the CLI locally without web scan credits.

Built by a DHS Trusted Tester–certified accessibility professional10+ years of testing experience.

Saved reviews · CSV exports · Retest evidence

Inside a GatekeeperQA reportDemo website · CLI report
GatekeeperQA report showing FAIL, one page checked, no scan errors and one critical finding.
One missing button label. Clear evidence to act on.

Actual output from a scan of our local demo website. One critical finding was detected; automated results still need human review.

Read the actual demo report
SCAN YOUR PAGESREVIEW THE FINDINGSKEEP THE EVIDENCE

LESS GUESSWORK. MORE CLARITY.

A quality check that
fits the way you work.

Start with the pages that matter. Keep the rules explicit. Give each change an outcome you can explain.

01 / CONFIGURE

Choose your pages.

Scan one public page as a guest, or sign in to check up to five pages from the same website in one run.

02 / CHECK

Find the friction.

Playwright and axe-core inspect rendered pages for automatically detectable accessibility issues.

03 / DECIDE

Make the call.

Read the evidence, prioritize fixes, and compare completed scans of the same pages. Unresolved checks and execution errors stay visible.

AUTOMATION WITH HONEST LIMITS

A passing check is a signal.
People still matter.

Automated testing covers only part of accessibility. GatekeeperQA targets automated WCAG 2.1 and 2.2 A/AA checks, alongside indicators for issues needing manual review. Results do not certify conformance or replace testing with people who use assistive technology.

FOLLOW THE WORKFLOW

Two guides. From first scan to retest.

Follow a complete browser workflow as a tester, or use the CLI and GitHub Actions as a developer. Each guide uses real results from an owned demonstration page, with AI-generated voice guidance using a speaker-approved voice clone and on-screen captions.

Try the interactive sample · Open sample PDF ↗ (opens in a new tab)

For testers: scan, review and retest

Open the tester video guide and transcript

4:31 · narrated screen captures · English captions

Read the full transcript and commands

Tester guide: scan, review and retest

Welcome to Gatekeeper Q A. This guide shows a real browser scan, a saved review, a report export, and a comparison after a fix. We use our own demonstration page. These are captured steps with pauses shortened, and synthetic narration. Automated checks support human testing; they do not certify accessibility.

1. Enter an authorized public page

Open scan dot gatekeeper Q A dot com. Enter one public page you own or have permission to test. Our target is slash guide dash demo. The hosted scanner needs a public address. Use the developer C L I for localhost. This recording is already signed in, so the report can be retained in the account.

2. Confirm permission and run

Confirm the permission checkbox, then choose Run accessibility scan. Additional page U R Ls are optional and use your plan allowance. A scan checks the initially loaded page, not every linked page or a signed-in journey. Wait for the result. If execution is incomplete, inspect the limitation and retry; do not treat it as a pass.

3. Read the result before making changes

Our first completed scan failed. It found one critical button-name violation affecting one element, with zero scan errors. Open the finding and read why it matters. A screen-reader user needs to know what the button does. A failed accessibility gate is useful evidence, not a reason to hide the result.

4. Expand the element evidence

Choose View locations and scan evidence. Here the selector is checkout, and the captured button has no text. Send the rule, location, observed page state and proposed fix to the developer. For this example, visible Checkout text is appropriate. Always verify the meaning of a label in the actual page.

5. Save and open your report

Find the result under My reports. Rename it with a useful baseline label, then choose Open report. Guests can use Save report and complete sign-in; that sign-in step is not shown here. Check that the intended report appears before leaving the page. Saved reports have an expiry, so download evidence you need to retain.

My reports
Rename: Tutorial — before button fix
Open report
Saved tester review
Choose the finding or manual check

6. Record what you actually tested

In Saved tester review, select the finding or manual check. Set a tracking status, enter a reviewer name, and describe your test steps and evidence. Choose Save review. We kept this finding open. Our first keyboard attempt did not produce the expected message, and the note says so. Screen-reader testing remains outstanding.

7. Export the right copy

Choose Open reviewed report slash save P D F to include saved notes. It opens separately, so your working page stays available. Use its Print slash save as P D F control and your browser print dialog. Original downloads remain unchanged. The reviewed J S O N and review C S V are separate ways to retain your notes.

8. Fix the page and check its behavior

The developer added visible Checkout text and corrected the demonstration script loading. On the updated page, the button now receives focus and Enter displays the no-payment confirmation. That is one observed interaction, not a complete manual assessment. Check keyboard order, visible focus, screen-reader behavior, zoom and relevant page states for your own application.

9. Rescan the same scope

Return to My reports and choose Rescan on the baseline. Review the U R L and confirm permission again. Our fresh scan of the same page passed. Rename it as the after report. A pass means this automated gate found no blocking result in that scan. It does not establish full W C A G conformance.

10. Compare, then verify

In Compare reports, select the earlier baseline and the later retest. Choose Compare findings. Our comparison shows one finding no longer detected, zero newly detected, and zero still detected at the same location. Expand the result and verify it manually before closing the issue. Preserve both reports and your review evidence.

Your repeatable testing loop

Use the same loop on each authorized page: scan, inspect evidence, record manual observations, make a fix, and retest the same scope. Keep incomplete results and unreviewed checks visible. The developer guide covers local commands and GitHub Actions. Visit the testing guide on gatekeeper Q A dot com for the written workflow.

SCAN  →  REVIEW  →  FIX  →  RETEST
Keep the same page scope.
Record observations, not assumptions.
Export evidence before expiry.
PASS is not an accessibility certification.

For developers: CLI and GitHub Actions

Open the developer video guide and transcript

5:02 · narrated screen captures · English captions

Read the full transcript and commands

Developer guide: CLI and GitHub Actions

This guide covers Gatekeeper Q A from the command line and in GitHub Actions. We will configure an explicit page, inspect a failing result, fix a button label, and retrieve a successful retest. Browser captures are from real runs. Command cards are readable instructions; local result cards summarize retained execution logs. Narration is synthetic.

1. Install the pinned CLI

Use Node J S twenty four with N P M. In a new project directory, initialize package dot J S O N, install Gatekeeper Q A C L I version zero point three point zero, then install Playwright Chromium. In an existing project, skip N P M init. The clean GitHub runner installation shown later also verifies this published package.

node --version
npm init -y
npm install --save-dev --save-exact @gatekeeperqa/cli@0.3.0
npx --no-install playwright install chromium

2. Start your app and configure pages

Start your application using its normal development command, and wait until its page is available. Save gatekeeper Q A dot J S O N with the actual U R L. This example uses localhost port three thousand. Replace that address if your app uses another port. The C L I checks explicit U R Ls, not a whole-site crawl.

gatekeeperqa.json
{
  "urls": ["http://127.0.0.1:3000/"],
  "failOn": ["critical", "serious"],
  "warnOn": ["moderate", "minor", "unknown"],
  "timeoutMs": 30000
}

3. Run a baseline scan

Run the C L I with your configuration and a separate before output directory. Open report dot H T M L after the command finishes. In our local demonstration, the unnamed button produced a critical button-name finding and exit code one. The retained transcript records that real result; the equivalent N P X command is shown here.

npx --no-install gatekeeperqa --config gatekeeperqa.json --output reports/before

Recorded local result (CLI build 0.3.0):
GatekeeperQA: FAIL
Exit code: 1
button-name · critical · 1 affected occurrence

4. Read reports and exit codes

Exit zero does not mean zero accessibility issues. In GatekeeperQA CLI version 0.3.0, exit zero means pass or warning. Exit one means the report status is fail. Exit two means a configuration or runtime error. Always read the report. Automated checks do not replace human testing.

reports/before/report.html
reports/before/report.json
reports/before/report.md
reports/before/report.xml

Bash: echo $?     PowerShell: $LASTEXITCODE

5. Fix, then preserve a separate retest

Give the button meaningful visible text and run the same scope into an after directory. Our local retest returned pass and exit zero. Preserve the baseline. Reproduce the affected page state and test the interaction manually, including a screen reader. A passing automated result does not prove the entire experience is accessible.

Before: <button id="checkout"></button>
After:  <button id="checkout">Checkout</button>

npx --no-install gatekeeperqa --config gatekeeperqa.json --output reports/after

Recorded local result: PASS · exit 0

6. Add the manual GitHub workflow

Copy the downloadable accessibility workflow into dot github slash workflows slash accessibility dot Y A M L in your repository. Commit it to the default branch so Run workflow is available. The template uses a manual trigger, read-only repository permission, Node twenty four, the pinned C L I, and seven-day report artifacts. It does not deploy your application.

.github/workflows/accessibility.yml

Trigger: workflow_dispatch
Input: target_url
Install → Scan → Save reports → Enforce result

Use a public deployed page you are authorized to test.

7. Choose the branch and public target

Open Actions, select the workflow, and choose Run workflow. Select the branch containing your intended workflow version and enter an authorized public page. Our recording uses an existing verification workflow on the review branch, with C L I zero point three point zero. The downloadable template has the same scan and artifact steps, with a manual trigger.

8. Inspect a genuine failed gate

The first GitHub run failed on the original demonstration page. Expand Scan authorized U R L and Enforce result to see the result and exit code. Save reports runs before the gate is enforced, so a failed accessibility result still leaves evidence. Open the artifact on the run summary rather than relying on the red status alone.

9. Retrieve the fixed-page result

After publishing the button fix, we ran the same workflow and public U R L again. This run succeeded, with one report artifact. Open the accessibility job for its scan output, then download accessibility reports from the summary. Extract the archive and open report dot H T M L; retain the machine-readable files for your tools.

10. Keep the evidence after the runner stops

The saved artifact contains the generated report files. Download it before its seven-day retention ends. The runner installed the public N P M package and Chromium cleanly; the two recorded runs took fifty four and forty one seconds. Check your own GitHub plan for runner billing. A completed job proves this run, not every page or state.

11. Adapt CI carefully

For pull-request testing, first build and start the changed application on the runner, or deploy a preview and wait for it. Point the scan at that changed version. A manual scan of production is not a pull-request check. Add the appropriate trigger and branch protection deliberately. This guide does not configure a P R bot or automatic comments.

Before enforcing pull-request checks:
1. Build and start the changed application.
2. Wait until its URL is ready.
3. Scan that URL and preserve reports.
4. Enforce the result after artifact upload.
5. Configure required checks for your repository.

Use automation and human review together

You now have a repeatable C L I and Actions workflow: explicit scope, a clear gate, report artifacts, and a separate retest. Use the browser tester guide to record manual observations and compare saved reports. Download the workflow and read the developer quick start on gatekeeper Q A dot com. Keep human testing part of every release.

Recorded October 2026. Captured steps and readable command cards; waits shortened. A passing automated scan is not accessibility certification. Manual testing remains necessary.

FROM FINDING TO FIX

See what changed after a fix.

Our demo started with an unnamed button and one critical finding. Adding a visible label changed the next automated result from FAIL to PASS.

Before · FAIL

1 critical finding · button-name

After · PASS

0 confirmed automated findings

What PASS means here: this scan found no confirmed automated issues on the tested page. It does not prove the page is accessible. Check keyboard use, focus, and screen-reader behavior with people too.

See the code change and both actual reports →

Manual checks still matter. Keep review notes, CSV exports and ticket evidence alongside your retest.

SAVED REPORT HISTORY

Follow your accessibility progress.

Choose a page to see severity counts across saved scans, keep manual-review progress separate, and compare matching completed reports after a fix. Your latest 10 reports are retained for up to 30 days. This is evidence for the tested scope, not a compliance score.

Sign in to view your progress · Read our accessibility statement

SHARE THE EVIDENCE

Send a read-only report snapshot.

Share a saved report with a developer or client, choose an expiry, and revoke the link when you need to. Saved review notes are optional. Anyone with the link can view the snapshot; it does not update after edits or retests.

Open your saved reports · Sharing and privacy details

FREE TODAY · SHARED CAPACITY

Start small. Know your allowance.

New here? Use Sign in / create free account to register or return with Google or an email code—no new password needed. Start free with daily scan limits. Pro is available at $19.99/month or $191/year. Sign in to choose a plan and continue to secure Stripe checkout.

Guests: 2 page scans per browser/day. Free accounts: 5 page scans/day, up to 5 same-site pages per run. Shared capacity is 50 attempts/day, 500/month and 8/network/day. Resets use UTC.

Guest reports last 15 minutes. Accounts keep their latest 10 reports for up to 30 days. The interactive sample and local CLI remain available when the web scanner is full.

Free usage, FAQs & privacy →

FOR DEVELOPERS

Run checks where you build.

The MIT-licensed CLI runs locally or in CI without using web scanner credits. Optionally upload a report to your account for review, sharing and retest comparison. Requires Node.js 24.

npm install --save-dev --save-exact @gatekeeperqa/cli@0.3.0

npx --no-install playwright install chromium

Configuration, CLI commands & GitHub workflow →

REPEAT THE SAME SCOPE

Save the pages you test together.

Create a named test set, load its pages for a scan, or attach CLI uploads. Filter saved reports and the progress chart by test set and page-list revision. Changing the page list keeps previous runs tied to their original scope.

Save up to 10 sets with 1–20 URLs each. Hosted scans still support up to five public pages on one website; larger or local sets need CLI runs. Existing scan allowances and report retention apply.

Manage your test sets · Test-set setup and CLI commands

FROM FINDING TO FOLLOW-UP

Prepare a GitHub issue from your report.

Choose a finding or manual check in a saved report. Review and edit a draft with the page, evidence, mapped WCAG references and retest steps, then open GitHub to submit it. No GitHub token needed. Captured HTML is optional and excluded by default.

How to prepare a GitHub issue

CHOOSE THE RIGHT WORKFLOW

GatekeeperQA, WAVE or axe DevTools?

Compare the features and limitations before choosing. GatekeeperQA uses axe-core; it does not replace every WAVE or Deque workflow.

Compare features, plans and limitations

Automated checks do not establish conformance; human testing remains necessary.

GATEKEEPERQA PRO

More pages. A repeatable review routine.

$19.99 USD/month or $191 USD/year. Yearly billing saves $48.88, about 20.4%, compared with twelve monthly payments.

One user, three website origins, up to 25 pages per batch, and 300 page scans refreshed monthly. Weekly monitoring and manual rescans share that allowance. New Pro reports retain the latest 2,000 reports for up to 180 days. No rollover or automatic overage charges.

Pro is available. Sign in to choose monthly or yearly billing through Stripe. The free scanner remains available. Human testing and human-reviewed VPAT/ACR services are separate.

Read the Pro scope, limits and cancellation terms

Sign in to choose Pro

WHAT COMES NEXT

Tell us what your team needs.

Report sharing, CLI uploads, reusable test sets and GitHub issue drafts are available. Weekly monitoring is available with Pro. Shared workspaces and direct integrations remain future possibilities; release dates are not set.

Tell us which feature would help you

BUILT FROM TESTING EXPERIENCE

Evidence a tester can use.

Keep findings, retest results and manual-review evidence together. Automation finds part of the picture; people bring the judgment.

Meet the thinking behind GatekeeperQA →

Make sense of your report

Learn how to interpret coverage, severity and manual-review items before writing a ticket.

How to read an accessibility report

Practical testing guides