Analyzes web pages or raw HTML for accessibility issues using axe-core . Returns violations grouped by WCAG criteria with enriched human context, remediation suggestions, and severity classification.
Best For
Comprehensive WCAG 2.0/2.1 compliance checking
Detailed violation reports with fix suggestions
Analysis of ARIA usage and semantic HTML
Parameters
URL of the page to analyze Either url or html is required, but not both.
Raw HTML content to analyze (alternative to URL) Useful for analyzing HTML snippets or templates before deployment.
Configuration options for the analysis WCAG conformance level: "A", "AA", or "AAA"
Include incomplete/needs-review issues that require manual verification
Specific axe rule IDs to run (runs all by default) [ "color-contrast" , "image-alt" , "label" ]
Axe rule IDs to exclude from analysis CSS selector to scope analysis to specific section Browser behavior options CSS selector to wait for before analysis (useful for SPAs)
Milliseconds to wait before analysis (max 60,000ms)
Viewport dimensions Viewport height in pixels
Ignore HTTPS certificate errors (for local dev servers)
Response
Whether the analysis completed successfully
The analyzed URL or "[html content]"
Total number of issues found
List of accessibility issues Axe-core rule identifier (e.g., "image-alt", "color-contrast")
Issue severity: "critical", "serious", "moderate", or "minor"
WCAG criterion details WCAG criterion number (e.g., "1.1.1", "2.4.7")
WCAG level: "A", "AA", or "AAA"
POUR principle: "perceivable", "operable", "understandable", or "robust"
Element location information CSS selector for the element
HTML snippet of the element
Human-readable issue description
Enriched context explaining real-world impact with WCAG criterion details
List of remediation suggestions
User groups affected (e.g., "screen-reader", "low-vision", "cognitive")
Fix priority: "critical", "high", "medium", or "low"
Estimated effort: "low", "medium", or "high"
Aggregated statistics Issue counts by severity level {
"critical" : 1 ,
"serious" : 2 ,
"moderate" : 2 ,
"minor" : 0
}
Issue counts by POUR principle {
"perceivable" : 3 ,
"operable" : 2 ,
"understandable" : 0 ,
"robust" : 0
}
Analysis duration in milliseconds
Examples
Natural Language
JSON Input
With WCAG Level
Wait for SPA Content
Raw HTML Analysis
Specific Section
Mobile Viewport
Analyze with axe-core: https://example.com
Response Example
{
"success" : true ,
"target" : "https://example.com" ,
"issueCount" : 5 ,
"issues" : [
{
"id" : "axe-core:image-alt:a3f8b9" ,
"ruleId" : "image-alt" ,
"tool" : "axe-core" ,
"severity" : "critical" ,
"wcag" : {
"criterion" : "1.1.1" ,
"level" : "A" ,
"principle" : "perceivable"
},
"location" : {
"selector" : "img:nth-child(2)" ,
"snippet" : "<img src= \" logo.png \" >"
},
"message" : "Images must have alternate text" ,
"humanContext" : "**Non-text content (WCAG 1.1.1 - Level A)** \n\n All non-text content must have a text alternative that serves the equivalent purpose. Screen reader users cannot perceive images without alternative text." ,
"suggestedActions" : [
"Add descriptive alt attribute to images" ,
"Use aria-label for decorative icons with function" ,
"Mark decorative images with empty alt= \"\" "
],
"affectedUsers" : [ "screen-reader" , "low-vision" ],
"priority" : "critical" ,
"remediationEffort" : "low" ,
"confidence" : 1
}
],
"summary" : {
"total" : 5 ,
"bySeverity" : {
"critical" : 1 ,
"serious" : 2 ,
"moderate" : 2 ,
"minor" : 0
},
"byPrinciple" : {
"perceivable" : 3 ,
"operable" : 2 ,
"understandable" : 0 ,
"robust" : 0
}
},
"duration" : 2340
}
Use Cases
Pre-deployment WCAG Validation
Analyze https://staging.myapp.com with axe-core at WCAG AA level
Validate WCAG compliance before deploying to production.
Component Testing
{
"html" : "<button>Click</button><button><img src='icon.png'></button>" ,
"options" : {
"wcagLevel" : "AA"
}
}
Test individual components or templates for accessibility issues.
{
"url" : "https://example.com/checkout" ,
"options" : {
"selector" : "form#checkout" ,
"wcagLevel" : "AA"
}
}
Focus analysis on critical forms to ensure proper labeling and structure.
Dynamic Content Analysis
{
"url" : "https://spa-app.com" ,
"options" : {
"browser" : {
"waitForSelector" : "[data-loaded='true']" ,
"waitForTimeout" : 5000
}
}
}
Analyze single-page applications after content loads.
Use includeIncomplete: true to identify issues that require manual verification, such as certain color contrast scenarios or complex ARIA patterns.
analyze-with-pa11y Alternative engine for WCAG testing with HTML CodeSniffer
analyze-mixed Run axe-core and Pa11y together for maximum coverage
analyze-contrast Dedicated color contrast analysis
Full Accessibility Audit Comprehensive audit workflow using multiple tools