import { test, expect } from '@playwright/test'; import AxeBuilder from '@axe-core/playwright'; /** * Accessibility Tests * * Uses axe-core to check for accessibility issues */ test.describe('Accessibility', () => { test('login page should not have accessibility violations', async ({ page }) => { await page.goto('/login'); const accessibilityScanResults = await new AxeBuilder({ page }).analyze(); console.log('\n=== Accessibility Scan Results ==='); console.log(`Violations found: ${accessibilityScanResults.violations.length}`); if (accessibilityScanResults.violations.length > 0) { console.log('\nViolations:'); accessibilityScanResults.violations.forEach((violation, i) => { console.log(`\n${i + 1}. ${violation.id}: ${violation.description}`); console.log(` Impact: ${violation.impact}`); console.log(` Help: ${violation.helpUrl}`); console.log(` Elements affected: ${violation.nodes.length}`); }); } console.log('=================================\n'); expect(accessibilityScanResults.violations).toEqual([]); }); });