Skip to content

test: implement comprehensive tests for issues #420-423 #19

test: implement comprehensive tests for issues #420-423

test: implement comprehensive tests for issues #420-423 #19

Triggered via pull request July 27, 2026 13:46
Status Failure
Total duration 9m 35s
Artifacts

e2e.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 1 warning, and 1 notice
[chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable: e2e/a11y.spec.ts#L57
5) [chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable ────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: /open menu/i }) Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByRole('button', { name: /open menu/i }) 55 | 56 | const menuButton = page.getByRole('button', { name: /open menu/i }); > 57 | await expect(menuButton).toBeVisible(); | ^ 58 | 59 | await menuButton.focus(); 60 | await expect(menuButton).toBeFocused(); at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:57:28
[chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable: e2e/a11y.spec.ts#L57
5) [chromium] › e2e/a11y.spec.ts:51:5 › @a11y Home mobile nav menu is keyboard operable ────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: /open menu/i }) Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByRole('button', { name: /open menu/i }) 55 | 56 | const menuButton = page.getByRole('button', { name: /open menu/i }); > 57 | await expect(menuButton).toBeVisible(); | ^ 58 | 59 | await menuButton.focus(); 60 | await expect(menuButton).toBeFocused(); at /home/runner/work/split-app/split-app/e2e/a11y.spec.ts:57:28
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Analytics (/analytics) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
4) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Analytics (/analytics) has no critical or serious axe violations Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 | }
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Analytics (/analytics) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
4) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Analytics (/analytics) has no critical or serious axe violations Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 | }
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Verify Invoice (/verify/1) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
3) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Verify Invoice (/verify/1) has no critical or serious axe violations Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 |
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Verify Invoice (/verify/1) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
3) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Verify Invoice (/verify/1) has no critical or serious axe violations Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49 |
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Invoice Detail (/invoice/1) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
2) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Invoice Detail (/invoice/1) has no critical or serious axe violations Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49
[chromium] › e2e/a11y.spec.ts:38:7 › @a11y Invoice Detail (/invoice/1) has no critical or serious axe violations: e2e/a11y.spec.ts#L47
2) [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Invoice Detail (/invoice/1) has no critical or serious axe violations Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: [serious] document-title: Documents must have <title> element to aid in navigation (https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright) - html Fix any of the following: Document does not have a non-empty <title> element [serious] html-has-lang: <html> element must have a lang attribute (https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright) - html Fix any of the following: The <html> element does not have a lang attribute expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 86 - Array [] + Array [ + Object { + "description": "Ensure each HTML document contains a non-empty <title> element", + "help": "Documents must have <title> element to aid in navigation", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/document-title?application=playwright", + "id": "document-title", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "doc-has-title", + "impact": "serious", + "message": "Document does not have a non-empty <title> element", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Document does not have a non-empty <title> element", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.text-alternatives", + "wcag2a", + "wcag242", + "TTv5", + "TT12.a", + "EN-301-549", + "EN-9.2.4.2", + "ACT", + "RGAAv4", + "RGAA-8.5.1", + ], + }, + Object { + "description": "Ensure every HTML document has a lang attribute", + "help": "<html> element must have a lang attribute", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.12/html-has-lang?application=playwright", + "id": "html-has-lang", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": Object { + "messageKey": "noLang", + }, + "id": "has-lang", + "impact": "serious", + "message": "The <html> element does not have a lang attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + The <html> element does not have a lang attribute", + "html": "<html>", + "impact": "serious", + "none": Array [], + "target": Array [ + "html", + ], + }, + ], + "tags": Array [ + "cat.language", + "wcag2a", + "wcag311", + "TTv5", + "TT11.a", + "EN-301-549", + "EN-9.3.1.1", + "ACT", + "RGAAv4", + "RGAA-8.3.1", + ], + }, + ] 45 | ); 46 | > 47 | expect(seriousOrCritical, formatViolations(seriousOrCritical)).toEqual([]); | ^ 48 | }); 49
[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-indigo-500 Fix any of the following: Element has insufficient color contrast of 1.99 (foreground color: #a5b4fc, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 - .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 + 93 - 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": 1.99, + "expectedContrastRatio": "4.5:1", + "fgColor": "#a5b4fc", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 1.99 (foreground color: #a5b4fc, 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 1.99 (foreground color: #a5b4fc, 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=\"true\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-indigo-500 text-indigo-300\">Create New</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-indigo-500", + ], + }, + 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 insufficien
[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-indigo-500 Fix any of the following: Element has insufficient color contrast of 1.99 (foreground color: #a5b4fc, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1 - .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 + 93 - 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": 1.99, + "expectedContrastRatio": "4.5:1", + "fgColor": "#a5b4fc", + "fontSize": "10.5pt (14px)", + "fontWeight": "normal", + "messageKey": null, + }, + "id": "color-contrast", + "impact": "serious", + "message": "Element has insufficient color contrast of 1.99 (foreground color: #a5b4fc, 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 1.99 (foreground color: #a5b4fc, 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=\"true\" class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg -mb-px border-b-2 border-indigo-500 text-indigo-300\">Create New</button>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".border-indigo-500", + ], + }, + 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 insufficien
e2e
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
17 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:38:7 › @a11y Invoice Detail (/invoice/1) has no critical or serious axe violations [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Verify Invoice (/verify/1) has no critical or serious axe violations [chromium] › e2e/a11y.spec.ts:38:7 › @a11y Analytics (/analytics) 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 [chromium] › e2e/create-invoice.spec.ts:5:7 › Create invoice flow › form loads with all required fields [chromium] › e2e/create-invoice.spec.ts:14:7 › Create invoice flow › equal split mode shows per-recipient amount [chromium] › e2e/create-invoice.spec.ts:24:7 › Create invoice flow › fill form and submit redirects [chromium] › e2e/dashboard.spec.ts:5:7 › Dashboard › dashboard loads with heading ────────────── [chromium] › e2e/dashboard.spec.ts:13:7 › Dashboard › shows sent and received invoices ───────── [chromium] › e2e/landing.spec.ts:5:7 › Landing page › loads and CTA navigates to /invoice/new ── [chromium] › e2e/pay-invoice.spec.ts:5:7 › Pay invoice flow › invoice detail page renders with pay button [chromium] › e2e/pay-invoice.spec.ts:14:7 › Pay invoice flow › funding progress bar is visible ─ [chromium] › e2e/verify-page.spec.ts:14:7 › /verify/[id] public page › shows verified on-chain badge [chromium] › e2e/verify-page.spec.ts:22:7 › /verify/[id] public page › shows creator and recipients sections [chromium] › e2e/verify-page.spec.ts:31:7 › /verify/[id] public page › shows payment progress section 3 passed (7.9m)