Skip to content

feat(select): allow HTML within options #18899

feat(select): allow HTML within options

feat(select): allow HTML within options #18899

Triggered via pull request April 14, 2026 21:21
@thetaPCthetaPC
synchronize #31072
FW-7137
Status Failure
Total duration 12m 19s
Artifacts 23

build.yml

on: pull_request
build-react
52s
build-react
build-vue
40s
build-vue
Matrix: test-core-screenshot
build-angular
1m 23s
build-angular
build-angular-server
50s
build-angular-server
test-core-clean-build
14s
test-core-clean-build
test-core-lint
50s
test-core-lint
test-core-spec
1m 1s
test-core-spec
build-react-router
32s
build-react-router
build-vue-router
44s
build-vue-router
verify-screenshots
3s
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
3s
verify-test-react-e2e
verify-test-react-router-e2e
3s
verify-test-react-router-e2e
verify-test-vue-e2e
2s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

24 errors and 16 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
test-react-router-e2e (reactrouter5)
Process completed with exit code 1.
verify-test-react-router-e2e
Process completed with exit code 1.
[Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load: src/components/router/test/guards/router.e2e.ts#L9
1) [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load Error: expect(received).toContain(expected) // indexOf Expected substring: "#/child/1" Received string: "http://localhost:3333/src/components/router/test/guards#/guard-initial-page?ionic:_testing=true&ionic:mode=ios&ionic:theme=ios&rtl=undefined&palette=light" 7 | await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); 8 | > 9 | expect(page.url()).toContain('#/child/1'); | ^ 10 | }); 11 | }); 12 | }); at /ionic/src/components/router/test/guards/router.e2e.ts:9:26
[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
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 (5, 20)
The strategy configuration was canceled because "test-core-screenshot._6_20" failed
test-core-screenshot (5, 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.
test-core-screenshot (1, 20)
The strategy configuration was canceled because "test-core-screenshot._6_20" failed
test-core-screenshot (1, 20)
Process completed with exit code 12.
test-core-screenshot (1, 20)
The operation was canceled.
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 (17, 20)
The strategy configuration was canceled because "test-core-screenshot._6_20" failed
test-core-screenshot (17, 20)
Process completed with exit code 12.
test-core-screenshot (17, 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 293 passed (2.6m)
🎭 Playwright Run Summary
368 skipped 324 passed (3.4m)
🎭 Playwright Run Summary
2 skipped 595 passed (4.1m)
🎭 Playwright Run Summary
8 skipped 714 passed (4.2m)
🎭 Playwright Run Summary
1 skipped 711 passed (4.5m)
🎭 Playwright Run Summary
8 skipped 810 passed (5.3m)
🎭 Playwright Run Summary
5 skipped 704 passed (5.4m)
🎭 Playwright Run Summary
36 skipped 870 passed (6.3m)
🎭 Playwright Run Summary
14 skipped 520 passed (6.5m)
🎭 Playwright Run Summary
5 skipped 697 passed (6.8m)
🎭 Playwright Run Summary
10 skipped 707 passed (7.1m)
🎭 Playwright Run Summary
3 skipped 727 passed (8.2m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load 13 skipped 710 passed (8.8m)
🎭 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 699 passed (9.0m)
🎭 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 765 passed (9.2m)
🎭 Playwright Run Summary
1 skipped 674 passed (9.1m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
811 KB
sha256:f5e63b11826b1f3891be21899b1bd42c945fb4b813fa66d32be5c34ec3c028ec
ionic-angular-server
8.55 KB
sha256:22d30e146942f050c0661f824a5c3f20b6587686460506b1131857ba69c09ab9
ionic-core
5.16 MB
sha256:7ca2e0f6f23af36474ef77e3a0062032c97aa8935eec07fba387b88947e4a75b
ionic-react
345 KB
sha256:f5fae8399c9519b23af0344b1df54c12d29d3ffe1091697f30753be64c8e742b
ionic-react-router
27.9 KB
sha256:3a8a870afc2d2f7ea783ffd5fd5615dbc5cc8146dbf4a12dbc52365f435a2c44
ionic-vue
376 KB
sha256:c9af14d7b0229707d57e4f5409cce2b0978e059a647d18249dea471f4857498e
ionic-vue-router
17.1 KB
sha256:6619d590a3ffe82a805ff2770d1102e0fa3d1a044b99a88e22557edbdc32e11a
test-results-10-20
448 KB
sha256:4952fd6105a19b8ae1c89dc3213b5781f06890d883fe0ab297bb910a678d94a8
test-results-11-20
619 KB
sha256:45dc307c7db68568b09c3c4ae67ef232fd37cd8aa1f588cf33b9990176855943
test-results-12-20
535 KB
sha256:065a5b758073cfdd979c5f8c0559c6690fd53f3f90717d93ccd6985d8ceccdee
test-results-13-20
548 KB
sha256:5f2e6a2a9eb166905d36519e9cd0390ee199e599fff244b9ffe3044f9d43f404
test-results-14-20
460 KB
sha256:dc058bfd1fb334625d061dd477bbe0ca2853e5106779e89be00a87a4649aa186
test-results-15-20
2.52 MB
sha256:b41561cca49bd747079ddf034b2fc2645c705e437095d4f681ab2f973b895a11
test-results-16-20
511 KB
sha256:c8a23a968516f5c5b6f5d0d8123d8e491f6be6c8d8d32220294f983ffef8e0cf
test-results-18-20
1.36 MB
sha256:ae45855a3e8ee243e10348b61214e0a93d71eba632fa97a0504848ef94fbb344
test-results-19-20
496 KB
sha256:5696a8a2494c9e1a2affbe237396dea43337a88c6f62b5e191cbe253c337b2b5
test-results-20-20
371 KB
sha256:3ebb08ca725aab7eac29fa5bb6b6cc59252cbe89c3fa1f58fc4062efec40acc8
test-results-3-20
502 KB
sha256:8be7ee1d350a8e7fb02097c5b28f79a8c522ec093dd9795084f3e5a117de357d
test-results-5-20
526 KB
sha256:a0cfa0cd3370541e0b933af6aa5f0085d2de3eb791474166635cfc700421d251
test-results-6-20
2.12 MB
sha256:f51170ed4d8bf1654261d2f791d408493bed98311d8038cf58c59dca1f01b4da
test-results-7-20
1.22 MB
sha256:48bb23bf80cbe4d9448fd4c405bbfd2e8feebaa880cb7dd67c26037f4cad295b
test-results-8-20
482 KB
sha256:b9a15991d15a72d9a6256cc89395e661fef647641f6734aff43379f5dc01c7af
test-results-9-20
573 KB
sha256:f1cde812375f1352e711d7bf18c89585c3cb15f2d8863ebb7ead69903f6f9037