Skip to content

fix(modal): add conditional tabIndex for handle cycling #16544

fix(modal): add conditional tabIndex for handle cycling

fix(modal): add conditional tabIndex for handle cycling #16544

Triggered via pull request June 26, 2025 19:50
@ShaneKShaneK
synchronize #30510
FW-6523
Status Success
Total duration 9m 59s
Artifacts 27

build.yml

on: pull_request
build-react
49s
build-react
build-vue
37s
build-vue
Matrix: test-core-screenshot
build-angular
51s
build-angular
build-angular-server
32s
build-angular-server
test-core-clean-build
10s
test-core-clean-build
test-core-lint
45s
test-core-lint
test-core-spec
1m 0s
test-core-spec
build-react-router
28s
build-react-router
build-vue-router
35s
build-vue-router
verify-screenshots
2s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
2s
verify-test-angular-e2e
verify-test-react-e2e
2s
verify-test-react-e2e
verify-test-react-router-e2e
2s
verify-test-react-router-e2e
verify-test-vue-e2e
2s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

6 errors and 20 notices
[Mobile Chrome] › src/components/datetime/test/locale/datetime.e2e.ts:25:11 › datetime: locale - md/ltr › en-US › month/year picker should not have visual regressions: src/components/datetime/test/locale/datetime.e2e.ts#L166
2) [Mobile Chrome] › src/components/datetime/test/locale/datetime.e2e.ts:25:11 › datetime: locale - md/ltr › en-US › month/year picker should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) 241 pixels (ratio 0.01 of all image pixels) are different. Expected: /ionic/src/components/datetime/test/locale/datetime.e2e.ts-snapshots/datetime-locale-en-US-month-year-diff-md-ltr-Mobile-Chrome-linux.png Received: /ionic/test-results/src-components-datetime-te-7ccc1-not-have-visual-regressions-Mobile-Chrome/datetime-locale-en-US-month-year-diff-md-ltr-actual.png Diff: /ionic/test-results/src-components-datetime-te-7ccc1-not-have-visual-regressions-Mobile-Chrome/datetime-locale-en-US-month-year-diff-md-ltr-diff.png Call log: - expect.toHaveScreenshot(datetime-locale-en-US-month-year-diff-md-ltr.png) with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime max="2022" locale="en-US" show-default-title="true" presentation="month-year" show-default-buttons="true" value="2022-04-19T04:20:00" class="ion-color ion-color-primary md show-month-and-year datetime-presentation-month-year datetime-size-fixed hydrated datetime-ready">…</ion-datetime> - 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 - 241 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime max="2022" locale="en-US" show-default-title="true" presentation="month-year" show-default-buttons="true" value="2022-04-19T04:20:00" class="ion-color ion-color-primary md show-month-and-year datetime-presentation-month-year datetime-size-fixed hydrated datetime-ready">…</ion-datetime> - 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 - 241 pixels (ratio 0.01 of all image pixels) are different. 164 | async expectLocalizedPicker(screenshot: ScreenshotFn, modifier?: string) { 165 | const modifierString = modifier === undefined ? '' : `-${modifier}`; > 166 | await expect(this.datetime).toHaveScreenshot(screenshot(`datetime-locale-${this.locale}${modifierString}-diff`)); | ^ 167 | } 168 | } 169 | at DatetimeLocaleFixture.expectLocalizedPicker (/ionic/src/components/datetime/test/locale/datetime.e2e.ts:166:33) at DatetimeLocaleFixture.expectLocalizedMonthYearPicker (/ionic/src/components/datetime/test/locale/datetime.e2e.ts:157:16) at /ionic/src/components/datetime/test/locale/datetime.e2e.ts:27:31
[Mobile Chrome] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days: src/components/datetime/test/datetime.e2e.ts#L32
1) [Mobile Chrome] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days Error: Timed out 5000ms waiting for expect(locator).toContainText(expected) Locator: locator('ion-datetime .calendar-month-year') Expected string: "February 2022" Received string: "February 2021" Call log: - expect.toContainText with timeout 5000ms - waiting for locator('ion-datetime .calendar-month-year') 9 × locator resolved to <div class="calendar-month-year">…</div> - unexpected value "February 2021" 30 | await page.waitForChanges(); 31 | > 32 | await expect(monthYearToggle).toContainText('February 2022'); | ^ 33 | }); 34 | 35 | test('should adjust the selected day when moving to a month with a different number of days', async ({ page }) => { at /ionic/src/components/datetime/test/datetime.e2e.ts:32:37
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups Error: Timed out 5000ms waiting for expect(locator).toBeFocused() Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive 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 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: Timed out 5000ms waiting for expect(locator).toBeFocused() Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive 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 Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor: src/components/toast/test/swipe-gesture/toast.e2e.ts#L0
1) [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor Test timeout of 30000ms exceeded.
[Mobile Safari] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days: src/components/datetime/test/datetime.e2e.ts#L32
1) [Mobile Safari] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days Error: Timed out 5000ms waiting for expect(locator).toContainText(expected) Locator: locator('ion-datetime .calendar-month-year') Expected string: "February 2022" Received string: "February 2021" Call log: - expect.toContainText with timeout 5000ms - waiting for locator('ion-datetime .calendar-month-year') 9 × locator resolved to <div class="calendar-month-year">…</div> - unexpected value "February 2021" 30 | await page.waitForChanges(); 31 | > 32 | await expect(monthYearToggle).toContainText('February 2022'); | ^ 33 | }); 34 | 35 | test('should adjust the selected day when moving to a month with a different number of days', async ({ page }) => { at /ionic/src/components/datetime/test/datetime.e2e.ts:32:37
🎭 Playwright Run Summary
216 skipped 238 passed (2.3m)
🎭 Playwright Run Summary
414 passed (2.7m)
🎭 Playwright Run Summary
212 skipped 292 passed (3.4m)
🎭 Playwright Run Summary
2 flaky [Mobile Chrome] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days [Mobile Chrome] › src/components/datetime/test/locale/datetime.e2e.ts:25:11 › datetime: locale - md/ltr › en-US › month/year picker should not have visual regressions 1 skipped 512 passed (3.4m)
🎭 Playwright Run Summary
508 passed (2.9m)
🎭 Playwright Run Summary
4 skipped 590 passed (3.5m)
🎭 Playwright Run Summary
2 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 [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups 4 skipped 497 passed (3.7m)
🎭 Playwright Run Summary
627 passed (4.1m)
🎭 Playwright Run Summary
10 skipped 482 passed (4.7m)
🎭 Playwright Run Summary
5 skipped 502 passed (4.7m)
🎭 Playwright Run Summary
14 skipped 374 passed (5.0m)
🎭 Playwright Run Summary
4 skipped 501 passed (5.9m)
🎭 Playwright Run Summary
506 passed (6.1m)
🎭 Playwright Run Summary
498 passed (6.1m)
🎭 Playwright Run Summary
4 skipped 502 passed (6.1m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor 5 skipped 550 passed (6.7m)
🎭 Playwright Run Summary
14 skipped 494 passed (7.1m)
🎭 Playwright Run Summary
9 skipped 502 passed (7.4m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/datetime/test/datetime.e2e.ts:17:9 › datetime: switching months with different number of days - md/ltr › should switch the calendar header when moving to a month with a different number of days 2 skipped 503 passed (7.4m)
🎭 Playwright Run Summary
8 skipped 506 passed (7.9m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular Expired
651 KB
sha256:1bc06a57845724900ad876ff37b35af05c510a65dfd48a25322d50fc95122df6
ionic-angular-server Expired
8.54 KB
sha256:99226e00f53fb1e1d20641beae14380a46616e04a5fab0c1829a25f28a717e49
ionic-core Expired
4.45 MB
sha256:4f9b1eb8e25428e502a1730fe1dd2c432082c9eead4868119366fe829c26143e
ionic-react Expired
199 KB
sha256:5a84f1798e7a0ec3bb9d9ff571b3d73331b3a6166ea68e13f0d8feb6d1be1eee
ionic-react-router Expired
27.9 KB
sha256:77ef36137b425532d121eea55ee2cf50b1b8fd8ba45805f7bf8c9710c630934d
ionic-vue Expired
221 KB
sha256:68c9308a84e1d9607b8595d5a9d34fa07b0556a8303a6dad192101836dbf8978
ionic-vue-router Expired
17.1 KB
sha256:e07fb08b755a669229cf363105f8afa855b6ea1d269e68fbfe6f9e866583ed57
test-results-1-20 Expired
442 KB
sha256:6db6b1330cdd6a3b21cb4061be3f9081739e97c22a87f1eace71b237aaf40423
test-results-10-20 Expired
419 KB
sha256:725dc5d908891190f96e23c4784709f8d2efd2622aa1fa55851f03edfdf13d68
test-results-11-20 Expired
1.61 MB
sha256:0f5b783dbec91b98c95eecb85a71fc87ad0a172d736c42a9b82ffae66a3de029
test-results-12-20 Expired
437 KB
sha256:30a3206491ae54f3ded9508e8f98224a04708ad3be0595333da7d0c3dab0df42
test-results-13-20 Expired
447 KB
sha256:f70ccf6ee8ff4a6d87e8e7b4dbe9af6b091ac22ab00cf12d9532840a9de40b49
test-results-14-20 Expired
401 KB
sha256:dba71f8c0276ad31ba980b1f889b7e00cf69a4e0d74b5c3503b24f16260fbb76
test-results-15-20 Expired
1.3 MB
sha256:77aa127636a8399d6d32e00b36d553945a79953e3d264ecb11abf7468d152de9
test-results-16-20 Expired
421 KB
sha256:fb63e4d83053be9465d02ac59df8b2bea3f71d113c124aa2704b0e0f8986fe76
test-results-17-20 Expired
542 KB
sha256:061840a9cdd3bacfdfa1abe47b0691c98ce8c5906c8c24f3a7f636916c731483
test-results-18-20 Expired
488 KB
sha256:64705cf2d5b3d3f67a1fa1c8ba2ef0a2ffd80741b5478d72b9ba54f1774e60fe
test-results-19-20 Expired
397 KB
sha256:08df043385fe12c6ea9be82c5f9ec510cdccebd6b9dcaa7ac6f39ee0cfff728a
test-results-2-20 Expired
476 KB
sha256:3993bcdf4064bec4ceb00f7dd307cd05a3db349e26ee885a9cebd943b1ff9890
test-results-20-20 Expired
347 KB
sha256:573469874eabde0f62f63be050a61526bd15c3e5cc0fd1e3a23fe6c443b4d286
test-results-3-20 Expired
422 KB
sha256:60d4c58be4785eaa1213c6ab4c4032fe9e5931fc1db6535ee34362bff5ed3810
test-results-4-20 Expired
528 KB
sha256:cbaa2425c75ae6677261d69e26515e88e5a32317a94d296e5bbe6386746ab132
test-results-5-20 Expired
447 KB
sha256:a22bc66c5982c2258bc86e020b3748d07bf4cff4aee53013b5f257e2ed2f729f
test-results-6-20 Expired
1.28 MB
sha256:2b32dc157d9c4f3c47c673b628c04a55bd184bca103a91589a3440618578f0aa
test-results-7-20 Expired
337 KB
sha256:fd8e16466b3a885b9be070c781d0977cd9ed9531319c92ff424e1a5c8ce84c32
test-results-8-20 Expired
1.8 MB
sha256:ce36a0868338744540fa79b72c40793ac242ee4b1d0c3fa6805e7d0ff30539e8
test-results-9-20 Expired
470 KB
sha256:2784a4e241460b98cad55d0a510614dd8fcab61b0c3dd6ad74984a27f05b2c21