Skip to content

feat(radio-group): remove radio-group-wrapper and convert to shadow DOM #17628

feat(radio-group): remove radio-group-wrapper and convert to shadow DOM

feat(radio-group): remove radio-group-wrapper and convert to shadow DOM #17628

Triggered via pull request December 4, 2025 13:31
Status Failure
Total duration 9m 13s
Artifacts 14

build.yml

on: pull_request
build-react
57s
build-react
build-vue
45s
build-vue
Matrix: test-core-screenshot
build-angular
1m 2s
build-angular
build-angular-server
41s
build-angular-server
test-core-clean-build
18s
test-core-clean-build
test-core-lint
1m 4s
test-core-lint
test-core-spec
50s
test-core-spec
build-react-router
25s
build-react-router
build-vue-router
44s
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
3s
verify-test-angular-e2e
verify-test-react-e2e
4s
verify-test-react-e2e
verify-test-react-router-e2e
2s
verify-test-react-router-e2e
verify-test-vue-e2e
4s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

50 errors and 7 notices
test-core-screenshot (11, 20)
Process completed with exit code 1.
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
4) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group 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" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[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
3) [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 Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── 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 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
3) [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: 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 Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. Snapshot: radio-scale-md-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-md-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. Snapshot: radio-scale-md-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-md-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. Snapshot: radio-scale-md-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-md-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="md hydrated">…</ion-radio-group> - 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 - Expected an image 249px by 43px, received 393px by 45px. 159 pixels (ratio 0.01 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. Snapshot: radio-scale-ios-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-ios-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. Snapshot: radio-scale-ios-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-ios-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes: src/components/radio/test/a11y/radio.e2e.ts#L174
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-radio-group') Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. Snapshot: radio-scale-ios-ltr.png Call log: - Expect "toHaveScreenshot(radio-scale-ios-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-radio-group') - locator resolved to <ion-radio-group value="a" role="radiogroup" class="ios hydrated">…</ion-radio-group> - 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 - Expected an image 248px by 44px, received 393px by 54px. 1153 pixels (ratio 0.06 of all image pixels) are different. 172 | 173 | const radioGroup = page.locator('ion-radio-group'); > 174 | await expect(radioGroup).toHaveScreenshot(screenshot(`radio-scale`)); | ^ 175 | }); 176 | }); 177 | }); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:174:32
test-core-screenshot (6, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (6, 20)
Process completed with exit code 12.
test-core-screenshot (6, 20)
The operation was canceled.
test-core-screenshot (5, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (5, 20)
Process completed with exit code 12.
test-core-screenshot (1, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (5, 20)
The operation was canceled.
test-core-screenshot (1, 20)
Process completed with exit code 12.
test-core-screenshot (1, 20)
The operation was canceled.
test-core-screenshot (13, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (13, 20)
Process completed with exit code 12.
test-core-screenshot (13, 20)
The operation was canceled.
test-core-screenshot (14, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (14, 20)
Process completed with exit code 12.
test-core-screenshot (14, 20)
The operation was canceled.
test-core-screenshot (17, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (17, 20)
Process completed with exit code 12.
test-core-screenshot (17, 20)
The operation was canceled.
test-core-screenshot (18, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (18, 20)
Process completed with exit code 12.
test-core-screenshot (18, 20)
The operation was canceled.
test-core-screenshot (4, 20)
The strategy configuration was canceled because "test-core-screenshot._11_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 (15, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (15, 20)
Process completed with exit code 12.
test-core-screenshot (15, 20)
The operation was canceled.
test-core-screenshot (2, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (2, 20)
Process completed with exit code 12.
test-core-screenshot (2, 20)
The operation was canceled.
test-core-screenshot (3, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (3, 20)
Process completed with exit code 12.
test-core-screenshot (3, 20)
The operation was canceled.
test-core-screenshot (16, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (16, 20)
Process completed with exit code 12.
test-core-screenshot (16, 20)
The operation was canceled.
test-core-screenshot (19, 20)
The strategy configuration was canceled because "test-core-screenshot._11_20" failed
test-core-screenshot (19, 20)
Process completed with exit code 12.
test-core-screenshot (19, 20)
The operation was canceled.
verify-screenshots
Process completed with exit code 1.
🎭 Playwright Run Summary
360 skipped 276 passed (2.3m)
🎭 Playwright Run Summary
368 skipped 308 passed (3.4m)
🎭 Playwright Run Summary
2 skipped 673 passed (3.6m)
🎭 Playwright Run Summary
8 skipped 683 passed (3.8m)
🎭 Playwright Run Summary
1 skipped 676 passed (3.9m)
🎭 Playwright Run Summary
8 skipped 663 passed (4.3m)
🎭 Playwright Run Summary
2 failed [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - ios/ltr › should scale text on larger font sizes [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:158:9 › radio: font scaling - md/ltr › should scale text on larger font sizes 2 flaky [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 [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group 4 skipped 668 passed (5.2m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
805 KB
sha256:e3e91300d7fdf633bd1c087303970c74acd308462fa19e19f2431b0a97171920
ionic-angular-server
8.55 KB
sha256:3e99c381019c9a9fd1d20ecc449fcfc10bd4eb01591a863ebbf5abddf02b71f1
ionic-core
5.13 MB
sha256:4d6f70658e9dcd6142584e1c5bbd4c7529685ee3cb53ac79c5842e6c4153513e
ionic-react
343 KB
sha256:98585f6370ec7ae71008d044b25b2aa35f9e408cd5653d55dea3b865d34cb8d9
ionic-react-router
27.9 KB
sha256:d5a890db7a0ca952c75de7b22396202a4f24522fe94768050e8ef1f3732476b5
ionic-vue
373 KB
sha256:0486c7341ab1eff77d0a3d2192d7cf9f424453076276da351a686dbdee89d007
ionic-vue-router
17.1 KB
sha256:713ab0ff59ce1881e12898bf8c87da70288c06c602cf78f864f316d419b2fbd2
test-results-10-20
465 KB
sha256:579e969499f4a7a55e08958093df055c3572460b53a681f73fa0a8ae031fbc87
test-results-11-20
4.33 MB
sha256:3970e37f47f9ec424228977906a63619edcc80f7c15d82e33768476b9d0d5fc0
test-results-12-20
499 KB
sha256:0080551b4173201fac0631dde1cfa9b8c6f59e137c34a405cca1d4a7bf1ec1b2
test-results-20-20
360 KB
sha256:6a3182e9b7573f8b23dd7c6efcaca3f7642c97cbf168b166b65cbfb3aa979007
test-results-7-20
379 KB
sha256:92101e62fc18b01f215b9baf661fb4bf3f7d0ab71a3c7967151dc6267b0e9ad3
test-results-8-20
465 KB
sha256:4581c43df5fcb2e77adf78f6c0f5894984986651000fdcbbabc3c5cacc2f3bd0
test-results-9-20
503 KB
sha256:307fd9ed2cc86b62894f328d9860f1df8006631a6f97962dd29467f3cd8d8e7a