Skip to content

merge main into next #18767

merge main into next

merge main into next #18767

Triggered via pull request April 1, 2026 20:48
@ShaneKShaneK
opened #31058
main
Status Failure
Total duration 13m 4s
Artifacts 25

build.yml

on: pull_request
build-react
52s
build-react
build-vue
42s
build-vue
Matrix: test-core-screenshot
build-angular
1m 17s
build-angular
build-angular-server
45s
build-angular-server
test-core-clean-build
15s
test-core-clean-build
test-core-lint
1m 0s
test-core-lint
test-core-spec
1m 4s
test-core-spec
build-react-router
26s
build-react-router
build-vue-router
55s
build-vue-router
verify-screenshots
4s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
3s
verify-test-angular-e2e
verify-test-react-e2e
2s
verify-test-react-e2e
verify-test-react-router-e2e
4s
verify-test-react-router-e2e
verify-test-vue-e2e
4s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

15 errors and 18 notices
[Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard: src/components/action-sheet/test/a11y/action-sheet.e2e.ts#L188
1) [Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard Error: expect(received).toBe(expected) // Object.is equality Expected: "Cancel" Received: "Option 1" 186 | 187 | focusedElement = await page.evaluate(() => document.activeElement?.textContent?.trim()); > 188 | expect(focusedElement).toBe('Cancel'); | ^ 189 | }); 190 | }); 191 | }); at /ionic/src/components/action-sheet/test/a11y/action-sheet.e2e.ts:188:30
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 120 | 121 | await pageUtils.pressKeys('Tab'); > 122 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 123 | 124 | await pageUtils.pressKeys('Tab'); 125 | await expect(secondGroupRadios.nth(0)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:122:47
[Mobile Safari] › src/components/checkbox/test/a11y/checkbox.e2e.ts:7:9 › checkbox: a11y - ios/ltr › should not have accessibility violations: src/components/checkbox/test/a11y/checkbox.e2e.ts#L23
1) [Mobile Safari] › src/components/checkbox/test/a11y/checkbox.e2e.ts:7:9 › checkbox: a11y - ios/ltr › should not have accessibility violations Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 69 - Array [] + Array [ + Object { + "description": "Ensure every ARIA toggle field has an accessible name", + "help": "ARIA toggle fields must have an accessible name", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name?application=playwright", + "id": "aria-toggle-field-name", + "impact": "serious", + "nodes": Array [ + Object { + "all": Array [], + "any": Array [ + Object { + "data": null, + "id": "has-visible-text", + "impact": "serious", + "message": "Element does not have text that is visible to screen readers", + "relatedNodes": Array [], + }, + Object { + "data": null, + "id": "aria-label", + "impact": "serious", + "message": "aria-label attribute does not exist or is empty", + "relatedNodes": Array [], + }, + Object { + "data": null, + "id": "aria-labelledby", + "impact": "serious", + "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty", + "relatedNodes": Array [], + }, + Object { + "data": Object { + "messageKey": "noAttr", + }, + "id": "non-empty-title", + "impact": "serious", + "message": "Element has no title attribute", + "relatedNodes": Array [], + }, + ], + "failureSummary": "Fix any of the following: + Element does not have text that is visible to screen readers + aria-label attribute does not exist or is empty + aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty + Element has no title attribute", + "html": "<ion-checkbox role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\" class=\"ios in-item ion-focusable interactive checkbox-label-placement-start checkbox-shape-soft hydrated\">Checkbox in item<input type=\"hidden\" class=\"aux-input\" name=\"ion-cb-3\" value=\"\"></ion-checkbox>", + "impact": "serious", + "none": Array [], + "target": Array [ + ".in-item", + ], + }, + ], + "tags": Array [ + "cat.aria", + "wcag2a", + "wcag412", + "TTv5", + "TT5.c", + "EN-301-549", + "EN-9.4.1.2", + "ACT", + "RGAAv4", + "RGAA-7.1.1", + ], + }, + ] 21 | 22 | const results = await new AxeBuilder({ page }).analyze(); > 23 | expect(results.violations).toEqual([]); | ^ 24 | }); 25 | }); 26 | }); at /ionic/src/components/checkbox/test/a11y/checkbox.e2e.ts:23:34
[Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard: src/components/action-sheet/test/a11y/action-sheet.e2e.ts#L188
1) [Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard Error: expect(received).toBe(expected) // Object.is equality Expected: "Cancel" Received: "Option 1" 186 | 187 | focusedElement = await page.evaluate(() => document.activeElement?.textContent?.trim()); > 188 | expect(focusedElement).toBe('Cancel'); | ^ 189 | }); 190 | }); 191 | }); at /ionic/src/components/action-sheet/test/a11y/action-sheet.e2e.ts:188:30
test-core-screenshot (6, 20)
Process completed with exit code 1.
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L45
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-tab-bar') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 43 | const tabBar = page.locator('ion-tab-bar'); 44 | > 45 | await expect(tabBar).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 46 | }); 47 | }); 48 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:45:28
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L45
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-tab-bar') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 43 | const tabBar = page.locator('ion-tab-bar'); 44 | > 45 | await expect(tabBar).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 46 | }); 47 | }); 48 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:45:28
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L45
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-tab-bar') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 43 | const tabBar = page.locator('ion-tab-bar'); 44 | > 45 | await expect(tabBar).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 46 | }); 47 | }); 48 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:45:28
test-core-screenshot (4, 20)
The strategy configuration was canceled because "test-core-screenshot._6_20" failed
test-core-screenshot (4, 20)
Process completed with exit code 12.
test-core-screenshot (4, 20)
The operation was canceled.
test-core-screenshot (2, 20)
The strategy configuration was canceled because "test-core-screenshot._6_20" failed
test-core-screenshot (2, 20)
Process completed with exit code 12.
test-core-screenshot (2, 20)
The operation was canceled.
verify-screenshots
Process completed with exit code 1.
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard 360 skipped 288 passed (2.5m)
🎭 Playwright Run Summary
368 skipped 324 passed (3.5m)
🎭 Playwright Run Summary
2 skipped 578 passed (3.7m)
🎭 Playwright Run Summary
8 skipped 718 passed (4.3m)
🎭 Playwright Run Summary
1 skipped 719 passed (4.7m)
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups 5 skipped 692 passed (5.2m)
🎭 Playwright Run Summary
8 skipped 810 passed (5.6m)
🎭 Playwright Run Summary
14 skipped 501 passed (6.2m)
🎭 Playwright Run Summary
36 skipped 847 passed (6.4m)
🎭 Playwright Run Summary
5 skipped 703 passed (6.9m)
🎭 Playwright Run Summary
10 skipped 705 passed (7.0m)
🎭 Playwright Run Summary
3 skipped 689 passed (8.0m)
🎭 Playwright Run Summary
13 skipped 694 passed (8.6m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/checkbox/test/a11y/checkbox.e2e.ts:7:9 › checkbox: a11y - ios/ltr › should not have accessibility violations 13 skipped 693 passed (9.0m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard 4 skipped 745 passed (9.2m)
🎭 Playwright Run Summary
1 skipped 671 passed (9.2m)
🎭 Playwright Run Summary
5 skipped 697 passed (9.6m)
🎭 Playwright Run Summary
1 failed [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions 5 skipped 757 passed (9.8m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
810 KB
sha256:95816bf98d2189bf92ae7a52b9570d974a458c066f594ac4c4e699a866fd6dd0
ionic-angular-server
8.56 KB
sha256:3ca10539b4450a47c4d8261b202f35feacd229b78c8934d91345e16375109e93
ionic-core
5.1 MB
sha256:3b3d2ba3ddfcbb5cbf72127e6cbe45bddb62890e504695915e347e4e2d14faab
ionic-react
344 KB
sha256:af4c5135d2f30d5d73ecf952ec70c1802bb0683106192a22b2858a229bc98ebd
ionic-react-router
27.9 KB
sha256:ef50d1b5b73ab3327a713f57606027f79398314058f1197d88f04e64742ba290
ionic-vue
375 KB
sha256:a189b7c2a1ea3524079a0ba98eb0381378585d839b57ef2d2ef9f52c01125129
ionic-vue-router
17 KB
sha256:8a9982117c442d8bb02ae9edba34079b4e79cd57d04e33b8ef2a7eebbd9e58cc
test-results-1-20
1.34 MB
sha256:af8f4f9c06e883d95e94c3baee1ffdd9dc31a268de682adc31d8a7c987688b39
test-results-10-20
445 KB
sha256:dd1f08e97a1d5bcdc4d2e3d0e5b6819e91c3bd60ad9afac3b719df4d58d432b9
test-results-11-20
1.37 MB
sha256:04fc63c5347ffe0a286ab04ac6a2b82c148217490d81826747f23e57f0beca89
test-results-12-20
534 KB
sha256:d644d5449a70827616f28e44a6783714a1ec08490b8cadca67cafbd957954dc8
test-results-13-20
539 KB
sha256:52612c23077e37e7529cfb83fda935a2e4c7aa07244975ec13531dfbf302477f
test-results-14-20
452 KB
sha256:40b36a52a06aa8c0fc5c706f358458a34180c551a29b5ed490e1003960cc6fb3
test-results-15-20
2.51 MB
sha256:d6abe1e1e6bd69fe8c0b779623287753b944888f853b95c4014ff63a5e3fb061
test-results-16-20
518 KB
sha256:4ea67a6c1fdd6a3958b6eebaa6d9a9e8c1bc25a216446e6c2957ae4e1b77fcf6
test-results-17-20
606 KB
sha256:903f716de50772ee8d18bc4b7512bba73f73f141789a7c67533b9a5372bb290d
test-results-18-20
592 KB
sha256:e38301671e1f196544edcf4eec191fd24c10cd5458d547f9d0dcd7f8c80ce810
test-results-19-20
496 KB
sha256:700fee4611f9e26abbd270c87b7dedea505e0f71d152e5f7be39061cb9996bfd
test-results-20-20
370 KB
sha256:62cc1a53a29baadaf97961fd2a305be91446e6e912ad42eb9058aa1f7c862939
test-results-3-20
481 KB
sha256:7a4e2870c3d45e0d9aaf0f8f172e06504e2ed39af539e84e49b72e5918bd60bf
test-results-5-20
524 KB
sha256:5251689b9795c942a5b8c48998f3dc3b043a745fe40e805405602eea4f9a5bba
test-results-6-20
2.11 MB
sha256:d2d6864eb9f12910ca52b9592776250d1f1a7d5aff20660b65f74774764f300e
test-results-7-20
1.23 MB
sha256:e7ad9424f5f00d25edd0d4987dd193f685d7c29b3634fa4083702355c52737d1
test-results-8-20
486 KB
sha256:0e34c336da8e7193178fd7f77b09f1582be70aa2e0c9728254130e1767e1d6d1
test-results-9-20
575 KB
sha256:a247679bbeb8c28db99c8de7c5ebad9563a012776363ad265eeb0128abfcb105