import AxeBuilder from '@axe-core/playwright'; import { expect, test } from '@playwright/test'; for (const locale of ['en', 'fr', 'ar'] as const) { test(`${locale} homepage has no detectable WCAG A/AA violations`, async ({ page }) => { await page.goto(`/${locale}/system`); const results = await new AxeBuilder({ page }) .withTags(['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa']) .analyze(); expect(results.violations).toEqual([]); }); } test('homepage keeps a coherent heading outline', async ({ page }) => { await page.goto('/en/system'); const levels = await page .locator('main h1, main h2, main h3') .evaluateAll((headings) => headings.map((heading) => Number(heading.tagName.slice(1)))); expect(levels[0]).toBe(1); for (let index = 1; index < levels.length; index += 1) { expect((levels[index] ?? 1) - (levels[index - 1] ?? 1)).toBeLessThanOrEqual(1); } });