Automated accessibility testing suite using axe-core, Selenium WebDriver, and TestNG.
src/test/java/com/accessibility/
├── config/
│ └── BaseTest.java # WebDriver setup/teardown (headless Chrome)
├── tests/
│ ├── SauceDemoAccessibilityTest.java
│ └── DemoQAAccessibilityTest.java
└── utils/
└── AccessibilityUtils.java # axe-core scan helpers
- Java 17+
- Maven 3.8+
- Google Chrome installed
mvn testThis picks up testng.xml and runs both test suites.
| Suite | URL | What it checks |
|---|---|---|
| SauceDemo | https://www.saucedemo.com | Login & inventory pages — critical/serious violations, WCAG 2.1 AA |
| DemoQA | https://demoqa.com | Home, forms, alerts, widgets, books pages — critical violations, WCAG 2.0 A |
AccessibilityUtils.runAxeScan(driver)— full page scanAccessibilityUtils.runAxeScanWithTags(driver, "wcag2a", "wcag2aa")— tag-filtered scanAccessibilityUtils.getViolationsByImpact(results, "critical")— filter by impact levelAccessibilityUtils.logViolations(results)— log all violations
| Library | Version |
|---|---|
| Selenium | 4.18.1 |
| WebDriverManager | 5.7.0 |
| axe-core selenium | 4.9.1 |
| TestNG | 7.9.0 |
| Log4j2 | 2.23.1 |