Accessibility Testing
QAID automatically scans your pages for WCAG accessibility violations and tracks remediation progress.
License: Accessibility Testing requires Pro or Enterprise tier.
Overview
Accessibility Testing detects WCAG compliance issues on your pages:
- Automated scanning after each element crawl (no extra step needed)
- Rule-based detection covering WCAG 2.1 Level A and AA standards
- Severity levels — critical, serious, moderate, minor
- Status tracking — triage violations as open, fixed, false-positive, or ignored
- Deduplication — same issue across pages is grouped by rule
How Scanning Works
Automatic Scanning
Accessibility scanning runs automatically after each element extraction (crawl) job completes. No manual action is required — violations appear in the Discovery step when the scan finishes.
Manual Scanning
Accessibility scans can be re-triggered for a project from the Discovery step in the UI.
What's Checked
QAID scans for WCAG 2.1 Level A and AA compliance, including:
| Category | Example Rules |
|---|---|
| Color & Contrast | Text contrast ratios, color-only indicators |
| Forms | Missing labels, unlabeled inputs, required field indicators |
| Images | Missing alt text, decorative image handling |
| Structure | Heading hierarchy, landmark regions, list structure |
| Links & Buttons | Empty links, missing button labels, link purpose |
| ARIA | Required ARIA attributes, valid roles, state management |
| Keyboard | Focus order, keyboard traps, skip navigation |
Authenticated Pages
If your project has authentication configured, the scanner logs in before scanning to access protected pages.
Viewing Results
Location
Accessibility violations appear in two places:
- Discovery step — Below the pages list
- Dashboard (Overview) — Summary panel
Violation Groups
Violations are grouped by rule (e.g., all color-contrast violations together):
- Rule name and description
- Impact level badge (critical/serious/moderate/minor)
- Page count — how many pages have this violation
- Violation count — total instances across all pages
Click a group to expand and see individual violations with:
- Affected page URL
- Element CSS selector
- HTML snippet of the affected element
- Failure summary (specific reason for the violation)
- Help link to remediation guidance for the specific WCAG rule
Summary Statistics
The summary header shows:
- Total open violations with impact breakdown
- Last scan date and pages scanned count
- Quick counts for critical, serious, moderate, and minor issues
Impact Levels
Violations are categorized by severity:
| Impact | Meaning | Action |
|---|---|---|
| Critical | Complete barrier to accessibility | Fix immediately — users cannot access content |
| Serious | Significant accessibility issue | Fix soon — major usability problem |
| Moderate | Minor accessibility concern | Plan fix — some users affected |
| Minor | Best-practice violation | Fix when convenient — cosmetic issue |
Violations are sorted by impact (critical first).
Managing Violations
Status Workflow
Each violation has a status:
| Status | Meaning | When to Use |
|---|---|---|
| Open | Unresolved, needs attention | Default for new violations |
| Fixed | Developer has resolved it | After deploying a fix |
| False Positive | Not a real issue | When the scanner flags something incorrectly |
| Ignored | Acknowledged but won't fix | Business decision to accept the violation |
Triaging Individual Violations
- Expand a violation group
- Click the status dropdown on a specific violation
- Select the new status: Open, Fixed, Ignore, or False Positive
Bulk Operations
For triaging many violations at once:
- Use the checkboxes to select individual violations
- Or use the group-level checkbox to select all violations in a rule
- Click the bulk action button: Mark Fixed, Ignore, or False Positive
You can also use the per-group dropdown ("Set all...") to apply a status to all violations in that rule at once.
Persistence Across Scans
Triaged violations persist across scans:
- Open violations are replaced by fresh scan results
- Fixed, False Positive, and Ignored violations are preserved — they won't reappear as new after the next scan
This means you only need to triage each violation once. If the same issue is detected again after being marked as fixed, it will appear as a new open violation.
Filtering
Status Filter
Filter violations by status:
- All Statuses (default)
- Open
- Fixed
- False Positive
- Ignored
Impact Filter
Filter by severity:
- All Impacts
- Critical
- Serious
- Moderate
- Minor
Both filters can be combined (e.g., show only open + critical violations).
Scan History
View past scan runs to track progress over time. Each run shows:
- Timestamp
- Pages scanned count
- Total violations found
- Duration
- Impact breakdown (critical/serious/moderate/minor counts)
Best Practices
Prioritize by Impact
- Address critical and serious violations first
- These represent genuine barriers that prevent users from accessing content
- Minor violations can be addressed during regular maintenance
Use False Positive Wisely
- Some rules may flag dynamic content incorrectly
- Mark as false positive only after manual verification
- False positives are excluded from open counts
Track Progress
- Run scans regularly (they auto-trigger on each crawl)
- Monitor the open violation count trending downward
- Use the summary to identify top rules with the most violations
Fix at the Source
- Accessibility violations are best fixed in your application code
- Use the help link on each violation for detailed remediation guidance
- Common fixes: add alt text, fix contrast ratios, add form labels, fix heading hierarchy
Test After Fixes
- Re-run element extraction to trigger a new accessibility scan
- Verify that previously open violations are no longer detected
- Check that fixes didn't introduce new violations
Troubleshooting
No Violations Showing
Possible causes:
- Scan hasn't run yet — trigger element extraction first
- All violations are triaged (filtered out) — check the status filter
- Pages require authentication — configure auth in project settings
Too Many Violations
Solutions:
- Filter by critical/serious impact to focus on high-priority issues
- Use bulk operations to triage groups of similar violations
- Address violations by rule (fix one rule type across all pages)
Scan Seems Incomplete
Possible causes:
- Some pages timed out during scanning
- Authentication failed for some pages
- Pages with heavy JavaScript may not fully render
Solutions:
- Check that all pages load correctly in a browser
- Verify authentication settings
- Increase JS wait time in project settings
Related Topics
- Page Discovery — Scanning triggers after page crawl
- Element Extraction — Extraction and scanning run together
- Bug Detection — Quality issues detected alongside accessibility
- Dashboard — Accessibility summary on project dashboard