import { test as base, expect } from "@playwright/test"; import AxeBuilder from "@axe-core/playwright"; /** * Shared Playwright fixture that adds an `axe` helper to every test. * Usage: * import { test, expect } from "./a11y-fixture.js"; * test("page is accessible", async ({ axe }) => { * const results = await axe.analyze(); * expect(results.violations).toEqual([]); * }); */ export const test = base.extend<{ axe: AxeBuilder }>({ axe: async ({ page }, use) => { const builder = new AxeBuilder({ page }) // Exclude known third-party widgets that we cannot control .exclude("#__next-build-indicator") // Only check WCAG 2.1 AA — the standard most teams target .withTags(["wcag2a", "wcag21a", "wcag2aa", "wcag21aa"]); await use(builder); }, }); export { expect };