Accessibility Scanner
Pricing
Pay per usage
Accessibility Scanner
Scan any website for WCAG accessibility compliance using axe-core. Get detailed reports with fix code suggestions, severity scores, and remediation priorities. Supports CI/CD integration with threshold-based pass/fail and competitor benchmarking to compare your accessibility against others.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Gabriel Antony Xaviour
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Crawl websites and analyze them for WCAG accessibility compliance using axe-core. Helps make the web accessible for people with disabilities by identifying issues like missing alt text, color contrast problems, keyboard navigation failures, and more.
Features
- WCAG Compliance Testing: Test against WCAG 2.0/2.1 at A, AA, or AAA levels
- Multi-page Crawling: Automatically discover and audit all pages on a website
- Issue Categorization: Issues grouped by severity (critical, serious, moderate, minor)
- Compliance Score: Get an overall accessibility score (0-100)
- Multiple Output Formats: JSON, HTML report, or CSV export
- Screenshots: Visual evidence of pages with accessibility issues
- Remediation Guide: Prioritized list of fixes with quick wins highlighted
- Fix Code Snippets: Automatic before/after code suggestions for each issue
- CI/CD Integration: Threshold-based pass/fail with SARIF output for GitHub
- Competitor Benchmarking: Compare your score against competitors
Input
| Field | Type | Description | Default |
|---|---|---|---|
startUrl | string | URL of the website to audit | (required) |
maxPages | integer | Maximum pages to crawl (1-500) | 50 |
wcagLevel | string | WCAG level: wcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag21aaa | wcag21aa |
includeGlobs | array | Only audit URLs matching these patterns | [] |
excludeGlobs | array | Skip URLs matching these patterns | ["/login", "/admin"] |
outputFormat | string | Output format: json, html, csv | html |
generateScreenshots | boolean | Capture screenshots of pages with issues | true |
proxyConfig | object | Proxy configuration | {} |
Output
Summary (OUTPUT key)
{"summary": {"startUrl": "https://example.com","wcagLevel": "wcag21aa","pagesScanned": 50,"totalIssues": 234,"critical": 12,"serious": 45,"moderate": 89,"minor": 88,"wcagScore": 62,"scanDuration": 120,"timestamp": "2024-01-15T10:30:00Z"},"issues": [...],"pageBreakdown": [...],"remediation": {"quickWins": [...],"majorEffort": [...]}}
Dataset
Each page result is pushed to the dataset with:
- URL, title, timestamp
- All accessibility issues found
- Issue counts by severity
- Screenshot key (if enabled)
Reports
accessibility-report- Full report in requested format (JSON/HTML/CSV)screenshot-*- Screenshots of pages with issues
Accessibility Checks
Based on axe-core, this actor checks for:
- Images: Missing alt text, decorative images
- Color: Contrast ratios, color-only information
- Forms: Missing labels, error identification
- Navigation: Keyboard accessibility, skip links, focus indicators
- Structure: Heading hierarchy, landmarks, lists
- Links: Descriptive link text
- Tables: Headers, captions, scope attributes
- ARIA: Valid roles, required attributes
- Language: Document language specification
Example
Audit a website for WCAG 2.1 AA compliance:
{"startUrl": "https://example.com","maxPages": 100,"wcagLevel": "wcag21aa","outputFormat": "html","generateScreenshots": true}
CI/CD Integration
The scanner supports CI/CD pipeline integration with threshold-based pass/fail and SARIF output for GitHub Code Scanning.
CI/CD Input Options
| Field | Type | Description | Default |
|---|---|---|---|
ciMode | boolean | Enable CI/CD integration with threshold checks | false |
scoreThreshold | integer | Fail if accessibility score is below this value (0-100) | 70 |
maxCriticalIssues | integer | Fail if critical issues exceed this count | 0 |
outputSarif | boolean | Generate SARIF format for GitHub Code Scanning | false |
GitHub Actions Example
# .github/workflows/accessibility.ymlname: Accessibility Checkon: [push, pull_request]jobs:a11y:runs-on: ubuntu-lateststeps:- name: Run Accessibility Scanuses: apify/apify-action@v1with:actor: your-username/accessibility-scannerinput: |{"startUrl": "${{ github.event.repository.homepage }}","ciMode": true,"scoreThreshold": 80,"maxCriticalIssues": 0,"outputSarif": true}token: ${{ secrets.APIFY_TOKEN }}- name: Upload SARIF to GitHub Securityuses: github/codeql-action/upload-sarif@v2with:sarif_file: accessibility-report-sarif.jsonif: always()
CI/CD Example Input
Run with strict accessibility requirements:
{"startUrl": "https://example.com","maxPages": 50,"ciMode": true,"scoreThreshold": 80,"maxCriticalIssues": 0,"outputSarif": true}
The actor will exit with code 1 if:
- The accessibility score is below the threshold
- The number of critical issues exceeds the maximum allowed
Competitor Benchmarking
Compare your website's accessibility against competitors with the benchmark mode.
Benchmark Input Options
| Field | Type | Description | Default |
|---|---|---|---|
benchmarkMode | boolean | Enable competitor comparison mode | false |
competitorUrls | array | List of competitor URLs to compare against | [] |
pagesPerSite | integer | Number of pages to scan per site (1-50) | 10 |
Benchmark Example
{"startUrl": "https://your-site.com","benchmarkMode": true,"competitorUrls": ["https://competitor-a.com","https://competitor-b.com"],"pagesPerSite": 10,"outputFormat": "html"}
Benchmark Output
The benchmark report includes:
- Your Score: Your site's accessibility score (0-100)
- Ranking: Where you stand among competitors (#1, #2, etc.)
- Industry Average: Average score across all scanned sites
- Comparison Chart: Visual bar chart comparing all sites
- Recommendations: Actionable insights like "You're X points below average"
Understanding the Score
The accessibility score (0-100) is calculated based on:
- Critical issues: -10 points each
- Serious issues: -5 points each
- Moderate issues: -2 points each
- Minor issues: -1 point each
Score grades:
- A (90-100): Excellent accessibility
- B (80-89): Good accessibility
- C (70-79): Fair accessibility
- D (60-69): Poor accessibility
- F (0-59): Failing accessibility
Why Accessibility Matters
- 1 billion people worldwide have disabilities
- 98% of websites fail basic accessibility standards
- Legal requirements (ADA, Section 508, WCAG) make this valuable for organizations
- Better accessibility improves SEO and user experience for everyone
Limitations
- JavaScript-heavy SPAs may require additional configuration
- Some dynamic content loaded after page load may be missed
- Automated testing catches ~30% of accessibility issues; manual testing is still recommended
- Rate limiting may apply to large sites
Testing Tip
Use the W3C BAD (Before and After Demonstration) site to test the scanner - it's intentionally inaccessible!
Support
For issues or feature requests, please open an issue on GitHub.