Skip to content

fix(input-password-toggle): improve screen reader announcements #17858

fix(input-password-toggle): improve screen reader announcements

fix(input-password-toggle): improve screen reader announcements #17858

Triggered via pull request December 22, 2025 16:29
Status Success
Total duration 9m 41s
Artifacts 27

build.yml

on: pull_request
build-vue
40s
build-vue
Matrix: test-core-screenshot
build-angular
1m 2s
build-angular
build-angular-server
35s
build-angular-server
test-core-clean-build
29s
test-core-clean-build
test-core-lint
52s
test-core-lint
test-core-spec
48s
test-core-spec
build-react-router
25s
build-react-router
build-vue-router
37s
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
3s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

5 errors and 20 notices
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › 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 › 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 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 › 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/datetime-button/test/overlays/datetime-button.e2e.ts:179:9 › datetime-button: modal - md/ltr › should set datetime ready state and keep calendar interactive when reopening modal: src/components/datetime-button/test/overlays/datetime-button.e2e.ts#L191
1) [Mobile Safari] › src/components/datetime-button/test/overlays/datetime-button.e2e.ts:179:9 › datetime-button: modal - md/ltr › should set datetime ready state and keep calendar interactive when reopening modal Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('ion-datetime.datetime-ready') to be visible 189 | await ionModalDidPresent.next(); 190 | > 191 | await page.locator('ion-datetime.datetime-ready').waitFor(); | ^ 192 | 193 | const calendarBody = datetime.locator('.calendar-body'); 194 | await expect(calendarBody).toBeVisible(); at openAndInteract (/ionic/src/components/datetime-button/test/overlays/datetime-button.e2e.ts:191:59) at /ionic/src/components/datetime-button/test/overlays/datetime-button.e2e.ts:197:7
[Mobile Safari] › src/components/datetime-button/test/overlays/datetime-button.e2e.ts:179:9 › datetime-button: modal - md/ltr › should set datetime ready state and keep calendar interactive when reopening modal: src/components/datetime-button/test/overlays/datetime-button.e2e.ts#L0
1) [Mobile Safari] › src/components/datetime-button/test/overlays/datetime-button.e2e.ts:179:9 › datetime-button: modal - md/ltr › should set datetime ready state and keep calendar interactive when reopening modal Test timeout of 30000ms exceeded.
🎭 Playwright Run Summary
216 skipped 261 passed (2.3m)
🎭 Playwright Run Summary
535 passed (3.0m)
🎭 Playwright Run Summary
4 skipped 511 passed (3.3m)
🎭 Playwright Run Summary
1 skipped 537 passed (3.2m)
🎭 Playwright Run Summary
1 skipped 537 passed (3.2m)
🎭 Playwright Run Summary
212 skipped 313 passed (3.7m)
🎭 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:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group 4 skipped 512 passed (4.0m)
🎭 Playwright Run Summary
648 passed (4.2m)
🎭 Playwright Run Summary
10 skipped 503 passed (4.8m)
🎭 Playwright Run Summary
14 skipped 403 passed (5.1m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/datetime-button/test/overlays/datetime-button.e2e.ts:179:9 › datetime-button: modal - md/ltr › should set datetime ready state and keep calendar interactive when reopening modal 5 skipped 512 passed (5.7m)
🎭 Playwright Run Summary
1 skipped 538 passed (6.2m)
🎭 Playwright Run Summary
10 skipped 531 passed (6.7m)
🎭 Playwright Run Summary
4 skipped 539 passed (6.7m)
🎭 Playwright Run Summary
7 skipped 510 passed (6.9m)
🎭 Playwright Run Summary
5 skipped 573 passed (6.8m)
🎭 Playwright Run Summary
1 skipped 528 passed (6.7m)
🎭 Playwright Run Summary
2 skipped 517 passed (7.0m)
🎭 Playwright Run Summary
5 skipped 518 passed (7.0m)
🎭 Playwright Run Summary
14 skipped 500 passed (7.2m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
667 KB
sha256:f17bd8e933e58a7377990c0f93eec1116e5f9d9f39c3707e642e69f295e532cf
ionic-angular-server
8.55 KB
sha256:602889689b35bc3d2390240c3a21a7eac09a69793c825ae2bc1e73b262f6fb9a
ionic-core
4.58 MB
sha256:1eb8bfaf78c8ca78fc818b8467d75a609ef6709b82ae5a01a79395999f34e416
ionic-react
212 KB
sha256:86c5ea048606c7b427cad6c62b312f4cb51f7c072d996e21105d890844d20362
ionic-react-router
27.9 KB
sha256:de1e644e49f429126d5a6cac9585e294a2bac428a6f4778c547be94686310a68
ionic-vue
234 KB
sha256:ddf12f26b097e8cd126ec82a7907481d7f35512458a6c6e85f0973fbaf19470c
ionic-vue-router
17.1 KB
sha256:55392645fe70dd734ca9dac99e2f9a2e00f3586666146ec7ac91fa01c67b4692
test-results-1-20
444 KB
sha256:dbb7c1ea4efe7382175a5aeaeebf84de30ec5ceae5f8cadd24857ccb9a1fc13b
test-results-10-20
460 KB
sha256:97e9af2b0730bdef4f691ac4f66b8f0823887ba00e25630736e81ee7b6fb3d71
test-results-11-20
1.98 MB
sha256:d6ed34be04df6b6c990a998f2687dd730606af8dccfca5d2a9b75cea7ebed353
test-results-12-20
446 KB
sha256:592922cf79385d331e506a7fb6aae4d339729a3f943fa20fa932766c5e90a74e
test-results-13-20
449 KB
sha256:e965ec48cabee3d5cd90211ab18c8d5b5e2581ed4d3718f5e84b8b7dc54c9f93
test-results-14-20
408 KB
sha256:21541a0e62ffe5c9e3793f374c5968f21930c79efbd4ca464802cbea41aedbb1
test-results-15-20
431 KB
sha256:7626ee8001f509a0a8adbc54433448fde5aa2e84cad76d5dcbc23226a0dd1d2f
test-results-16-20
1.22 MB
sha256:012c228302b049fae50e36103faf5ca5c287af514722e07f2cb789f0bd8fec51
test-results-17-20
531 KB
sha256:2a47db3992503d63a081ece30147106dcd96cb7d54bc7889d3d19fe086afb10e
test-results-18-20
507 KB
sha256:5c0b23a711ff6917fbf2715690a5d42e1cba1dfb9632fdb83a61350118c6221b
test-results-19-20
395 KB
sha256:67c7bad952a07b2bd42f0b7b0b599f1892e69f40d683d693153e18744f902dcb
test-results-2-20
471 KB
sha256:64ab2d76dc3aec31516f9ca7b20d2dfe5b7b2727082c885167b48f0ef4562316
test-results-20-20
360 KB
sha256:1379c1e3f96b44ebec2a0b2ba9e5e3d9aa72fcadd3c91e6d1e0f9eab1061300f
test-results-3-20
430 KB
sha256:2c401dc90e37d8faecd4a505572881b0bcfac087ceba6cee81c03b6c11194fc2
test-results-4-20
525 KB
sha256:3615d41ef9eefeb5347232b2aacd3f24b4721edb43cffa52b1b7d5fd5f2b4b25
test-results-5-20
456 KB
sha256:a0bdc02db02308a94340aeb18767ec3e4dce8d1fefa47d3231f210f769e52229
test-results-6-20
446 KB
sha256:fb97b96a863ca6c3b95db15f5e8fdf10a82ac9477ff4ac5309e431c1f6776a07
test-results-7-20
354 KB
sha256:7b5a5e49d46992df2c49621736317327564320297321dc3b4698fa8a94eb2873
test-results-8-20
428 KB
sha256:c25fd5f4edbc981fe110471797cfca98ac4a66aa5cf9c5f1e911a34b46d9069c
test-results-9-20
437 KB
sha256:1860ea4f2548eaac6dc75a7b70ffb1e18bfe78d29a5a9036f0aec9f744dae1b8