Skip to content

fix: resolve 3 a11y test failures — contrast, mobile nav label, token… #123

fix: resolve 3 a11y test failures — contrast, mobile nav label, token…

fix: resolve 3 a11y test failures — contrast, mobile nav label, token… #123

Triggered via push August 10, 2026 10:26
Status Failure
Total duration 3m 6s
Artifacts
Fit to window
Zoom out
Zoom in

Annotations

7 errors, 2 warnings, and 1 notice
a11y
Process completed with exit code 1.
[chromium] › e2e/a11y.spec.ts:71:5 › @a11y New Invoice form fields are all keyboard-reachable and labelled: e2e/a11y.spec.ts#L81
3) [chromium] › e2e/a11y.spec.ts:71:5 › @a11y New Invoice form fields are all keyboard-reachable and labelled Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] color-contrast: Elements must meet minimum color contrast ratio thresholds (https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright) - .border-transparent Fix any of the following: Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 58 - Array [] + Array [ + Object { + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + "help": "Elements must meet minimum color contrast ratio thresholds", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright", + "id": "color-contrast", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "bgColor": "#ffffff", + "contrastRatio": 2.53, + "expectedContrastRatio": "4.5:1", + "fgColor": "#9ca3af", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "relatedNodes": Array [ + Object { + "html": "<body class=\"min-h-screen bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100 antialiased overflow-x-hidden\">", + "target": Array [ + "body", + ], + }, + ], + }, + ], + "failureSummary": "Fix any of the following: + Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "html": "<button type=\"button\" role=\"tab\" aria-selected=\"false\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-transparent text-gray-400 hover:text-gray-200\">Import from Transaction</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-transparent", + ], + }, + ], + "tags": Array [ + "cat.color", + "wcag2aa", + "wcag143", + "TTv5", + "TT13.c", + "EN-301-549", + "EN-9.1.4.3", + "ACT", + "RGAAv4", + "RGAA-3.2.1", + ], + }, + ] 79 | (v) => v.impact === 'critical' || v.impact === 'serious' 80 | ); > 81 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 82 | }); 83 | at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:81:66
[chromium] › e2e/a11y.spec.ts:71:5 › @a11y New Invoice form fields are all keyboard-reachable and labelled: e2e/a11y.spec.ts#L81
3) [chromium] › e2e/a11y.spec.ts:71:5 › @a11y New Invoice form fields are all keyboard-reachable and labelled Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] color-contrast: Elements must meet minimum color contrast ratio thresholds (https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright) - .border-transparent Fix any of the following: Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 58 - Array [] + Array [ + Object { + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + "help": "Elements must meet minimum color contrast ratio thresholds", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright", + "id": "color-contrast", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "bgColor": "#ffffff", + "contrastRatio": 2.53, + "expectedContrastRatio": "4.5:1", + "fgColor": "#9ca3af", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "relatedNodes": Array [ + Object { + "html": "<body class=\"min-h-screen bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100 antialiased overflow-x-hidden\">", + "target": Array [ + "body", + ], + }, + ], + }, + ], + "failureSummary": "Fix any of the following: + Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "html": "<button type=\"button\" role=\"tab\" aria-selected=\"false\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-transparent text-gray-400 hover:text-gray-200\">Import from Transaction</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-transparent", + ], + }, + ], + "tags": Array [ + "cat.color", + "wcag2aa", + "wcag143", + "TTv5", + "TT13.c", + "EN-301-549", + "EN-9.1.4.3", + "ACT", + "RGAAv4", + "RGAA-3.2.1", + ], + }, + ] 79 | (v) => v.impact === 'critical' || v.impact === 'serious' 80 | ); > 81 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 82 | }); 83 | at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:81:66
[chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable: e2e/a11y.spec.ts#L62
2) [chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable ────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('navigation', { name: /mobile navigation/i }) Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByRole('navigation', { name: /mobile navigation/i }) 60 | await expect(menuButton).toBeFocused(); 61 | await page.keyboard.press('Enter'); > 62 | await expect(page.getByRole('navigation', { name: /mobile navigation/i })).toBeVisible(); | ^ 63 | 64 | const results = await runAxe(page); 65 | const seriousOrCritical = results.violations.filter( at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:62:78
[chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable: e2e/a11y.spec.ts#L62
2) [chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable ────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('navigation', { name: /mobile navigation/i }) Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByRole('navigation', { name: /mobile navigation/i }) 60 | await expect(menuButton).toBeFocused(); 61 | await page.keyboard.press('Enter'); > 62 | await expect(page.getByRole('navigation', { name: /mobile navigation/i })).toBeVisible(); | ^ 63 | 64 | const results = await runAxe(page); 65 | const seriousOrCritical = results.violations.filter( at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:62:78
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y New Invoice (/invoice/new) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
1) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y New Invoice (/invoice/new) has no critical or serious axe violations Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] color-contrast: Elements must meet minimum color contrast ratio thresholds (https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright) - .border-transparent Fix any of the following: Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 58 - Array [] + Array [ + Object { + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + "help": "Elements must meet minimum color contrast ratio thresholds", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright", + "id": "color-contrast", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "bgColor": "#ffffff", + "contrastRatio": 2.53, + "expectedContrastRatio": "4.5:1", + "fgColor": "#9ca3af", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "relatedNodes": Array [ + Object { + "html": "<body class=\"min-h-screen bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100 antialiased overflow-x-hidden\">", + "target": Array [ + "body", + ], + }, + ], + }, + ], + "failureSummary": "Fix any of the following: + Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "html": "<button type=\"button\" role=\"tab\" aria-selected=\"false\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-transparent text-gray-400 hover:text-gray-200\">Import from Transaction</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-transparent", + ], + }, + ], + "tags": Array [ + "cat.color", + "wcag2aa", + "wcag143", + "TTv5", + "TT13.c", + "EN-301-549", + "EN-9.1.4.3", + "ACT", + "RGAAv4", + "RGAA-3.2.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 | } 50 | at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:47:68
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y New Invoice (/invoice/new) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
1) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y New Invoice (/invoice/new) has no critical or serious axe violations Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] color-contrast: Elements must meet minimum color contrast ratio thresholds (https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright) - .border-transparent Fix any of the following: Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 58 - Array [] + Array [ + Object { + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + "help": "Elements must meet minimum color contrast ratio thresholds", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright", + "id": "color-contrast", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "bgColor": "#ffffff", + "contrastRatio": 2.53, + "expectedContrastRatio": "4.5:1", + "fgColor": "#9ca3af", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "relatedNodes": Array [ + Object { + "html": "<body class=\"min-h-screen bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100 antialiased overflow-x-hidden\">", + "target": Array [ + "body", + ], + }, + ], + }, + ], + "failureSummary": "Fix any of the following: + Element has insufficient color contrast of 2.53 (foreground color: #9ca3af, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + "html": "<button type=\"button\" role=\"tab\" aria-selected=\"false\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-transparent text-gray-400 hover:text-gray-200\">Import from Transaction</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-transparent", + ], + }, + ], + "tags": Array [ + "cat.color", + "wcag2aa", + "wcag143", + "TTv5", + "TT13.c", + "EN-301-549", + "EN-9.1.4.3", + "ACT", + "RGAAv4", + "RGAA-3.2.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 | } 50 | at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:47:68
a11y
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
a11y
No files were found with the provided path: playwright-report/. No artifacts will be uploaded.
🎭 Playwright Run Summary
3 failed [chromium] › e2e/a11y.spec.ts:38:7 › @a11y New Invoice (/invoice/new) has no critical or serious axe violations [chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable ─────────── [chromium] › e2e/a11y.spec.ts:71:5 › @a11y New Invoice form fields are all keyboard-reachable and labelled 5 passed (1.5m)