From 33e40af083a7daa9b4523ba3c589b34c44a9a2a1 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Fri, 24 Jul 2026 10:17:08 -0700 Subject: [PATCH 01/12] fix(checkbox,radio): show keyboard focus indicator, including in multi-input items --- .../src/components/checkbox/checkbox.ios.scss | 23 ++++++ .../checkbox/checkbox.ios.vars.scss | 3 + core/src/components/checkbox/checkbox.md.scss | 23 ++++++ .../components/checkbox/checkbox.md.vars.scss | 3 + core/src/components/checkbox/checkbox.scss | 2 + core/src/components/checkbox/checkbox.tsx | 33 ++++++++- .../checkbox/test/a11y/checkbox.e2e.ts | 64 +++++++++++++++++ core/src/components/radio/radio.tsx | 30 +++++++- .../components/radio/test/a11y/radio.e2e.ts | 72 +++++++++++++++++++ 9 files changed, 247 insertions(+), 6 deletions(-) diff --git a/core/src/components/checkbox/checkbox.ios.scss b/core/src/components/checkbox/checkbox.ios.scss index 7c7bcafc9fd..6e8a512936c 100644 --- a/core/src/components/checkbox/checkbox.ios.scss +++ b/core/src/components/checkbox/checkbox.ios.scss @@ -31,3 +31,26 @@ :host(.checkbox-disabled) { opacity: $checkbox-ios-disabled-opacity; } + +// iOS Checkbox: Keyboard Focus +// ----------------------------------------- + +:host(.ion-focused) .native-wrapper::after { + @include border-radius(50%); + + display: block; + position: absolute; + + width: 36px; + height: 36px; + + transform: translate(-50%, -50%); + + background: $checkbox-ios-background-color-focused; + + content: ""; + opacity: 0.2; + + inset-block-start: 50%; + inset-inline-start: 50%; +} diff --git a/core/src/components/checkbox/checkbox.ios.vars.scss b/core/src/components/checkbox/checkbox.ios.vars.scss index 78605a85f88..c41efe339a7 100644 --- a/core/src/components/checkbox/checkbox.ios.vars.scss +++ b/core/src/components/checkbox/checkbox.ios.vars.scss @@ -28,3 +28,6 @@ $checkbox-ios-disabled-opacity: $form-control-ios-disabled-opacity; /// @prop - Checkmark width of the checkbox icon $checkbox-ios-icon-checkmark-width: 1.5px; + +/// @prop - Background color of focus indicator for checkbox when focused +$checkbox-ios-background-color-focused: ion-color(primary, tint); diff --git a/core/src/components/checkbox/checkbox.md.scss b/core/src/components/checkbox/checkbox.md.scss index e87f7bbf1a0..6f22e61204d 100644 --- a/core/src/components/checkbox/checkbox.md.scss +++ b/core/src/components/checkbox/checkbox.md.scss @@ -51,3 +51,26 @@ :host(.checkbox-disabled) .native-wrapper { opacity: $checkbox-md-icon-disabled-opacity; } + +// Material Design Checkbox: Keyboard Focus +// ----------------------------------------- + +:host(.ion-focused) .native-wrapper::after { + @include border-radius(50%); + + display: block; + position: absolute; + + width: 36px; + height: 36px; + + transform: translate(-50%, -50%); + + background: $checkbox-md-background-color-focused; + + content: ""; + opacity: 0.2; + + inset-block-start: 50%; + inset-inline-start: 50%; +} diff --git a/core/src/components/checkbox/checkbox.md.vars.scss b/core/src/components/checkbox/checkbox.md.vars.scss index 445d50b6a6e..0b9e5600a14 100644 --- a/core/src/components/checkbox/checkbox.md.vars.scss +++ b/core/src/components/checkbox/checkbox.md.vars.scss @@ -30,6 +30,9 @@ $checkbox-md-transition-duration: 180ms; /// @prop - Transition easing of the checkbox $checkbox-md-transition-easing: cubic-bezier(.4, 0, .2, 1); +/// @prop - Background color of focus indicator for checkbox when focused +$checkbox-md-background-color-focused: ion-color(primary, tint); + /// @prop - Opacity of the disabled checkbox /// This value is used because the checkbox color is set to /// `rgb(0, 0, 0, 0.60)` when enabled and we need it to be diff --git a/core/src/components/checkbox/checkbox.scss b/core/src/components/checkbox/checkbox.scss index 438add273d0..bd2c0df4117 100644 --- a/core/src/components/checkbox/checkbox.scss +++ b/core/src/components/checkbox/checkbox.scss @@ -122,6 +122,8 @@ input { .native-wrapper { display: flex; + position: relative; + align-items: center; } diff --git a/core/src/components/checkbox/checkbox.tsx b/core/src/components/checkbox/checkbox.tsx index 99cb13c474a..c0b56da4ffb 100644 --- a/core/src/components/checkbox/checkbox.tsx +++ b/core/src/components/checkbox/checkbox.tsx @@ -1,5 +1,5 @@ import type { ComponentInterface, EventEmitter } from '@stencil/core'; -import { Build, Component, Element, Event, Host, Method, Prop, State, h } from '@stencil/core'; +import { Build, Component, Element, Event, Host, Method, Prop, State, forceUpdate, h } from '@stencil/core'; import { checkInvalidState } from '@utils/forms'; import type { Attributes } from '@utils/helpers'; import { inheritAriaAttributes, renderHiddenInput } from '@utils/helpers'; @@ -37,6 +37,7 @@ export class Checkbox implements ComponentInterface { private errorTextId = `${this.inputId}-error-text`; private inheritedAttributes: Attributes = {}; private validationObserver?: MutationObserver; + private itemFocusObserver?: MutationObserver; @Element() el!: HTMLIonCheckboxElement; @@ -199,6 +200,22 @@ export class Checkbox implements ComponentInterface { // Always set initial state this.isInvalid = checkInvalidState(el); this.hasLabelContent = this.el.textContent !== ''; + + // The item toggles `item-multiple-inputs` after this control renders and as + // inputs are added or removed. Re-render when it flips so the focus + // indicator stays in sync. + const item = el.closest('ion-item'); + if (item && Build.isBrowser && typeof MutationObserver !== 'undefined') { + let wasMultipleInputs = item.classList.contains('item-multiple-inputs'); + this.itemFocusObserver = new MutationObserver(() => { + const isMultipleInputs = item.classList.contains('item-multiple-inputs'); + if (isMultipleInputs !== wasMultipleInputs) { + wasMultipleInputs = isMultipleInputs; + forceUpdate(this); + } + }); + this.itemFocusObserver.observe(item, { attributes: true, attributeFilter: ['class'] }); + } } componentWillLoad() { @@ -210,11 +227,15 @@ export class Checkbox implements ComponentInterface { } disconnectedCallback() { - // Clean up validation observer to prevent memory leaks. + // Clean up observers to prevent memory leaks. if (this.validationObserver) { this.validationObserver.disconnect(); this.validationObserver = undefined; } + if (this.itemFocusObserver) { + this.itemFocusObserver.disconnect(); + this.itemFocusObserver = undefined; + } } /** @internal */ @@ -338,6 +359,8 @@ export class Checkbox implements ComponentInterface { } = this; const mode = getIonMode(this); const path = getSVGPath(mode, indeterminate); + const inItem = hostContext('ion-item', el); + const inMultipleInputsItem = hostContext('ion-item.item-multiple-inputs', el); renderHiddenInput(true, el, name, checked ? value : '', disabled); @@ -360,11 +383,15 @@ export class Checkbox implements ComponentInterface { onClick={this.onClick} class={createColorClasses(color, { [mode]: true, - 'in-item': hostContext('ion-item', el), + 'in-item': inItem, 'checkbox-checked': checked, 'checkbox-disabled': disabled, 'checkbox-indeterminate': indeterminate, interactive: true, + // Focus styling should not apply when the checkbox is in an item, + // since the item handles the focus indicator instead. The exception + // is a multi-input item, which has no single indicator of its own. + 'ion-focusable': !inItem || inMultipleInputsItem, [`checkbox-justify-${justify}`]: justify !== undefined, [`checkbox-alignment-${alignment}`]: alignment !== undefined, [`checkbox-label-placement-${labelPlacement}`]: true, diff --git a/core/src/components/checkbox/test/a11y/checkbox.e2e.ts b/core/src/components/checkbox/test/a11y/checkbox.e2e.ts index 6d0b6645ae5..e1e63f65ef3 100644 --- a/core/src/components/checkbox/test/a11y/checkbox.e2e.ts +++ b/core/src/components/checkbox/test/a11y/checkbox.e2e.ts @@ -25,6 +25,70 @@ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, }); }); +/** + * These tests assert the `ion-focusable` gating class the component controls, + * not the rendered focus ring. `ion-focused` is not asserted directly because + * it depends on keyboard-mode detection, which is unreliable on WebKit. The + * gating logic does not vary across modes. + */ +configs({ directions: ['ltr'], modes: ['md'] }).forEach(({ title, config }) => { + test.describe(title('checkbox: focus indicator'), () => { + test('standalone checkbox should be focusable', async ({ page }) => { + await page.setContent( + ` + + Checkbox + + `, + config + ); + + const checkbox = page.locator('ion-checkbox'); + await expect(checkbox).toHaveClass(/ion-focusable/); + }); + + test('checkbox in a single-input item should not show its own focus indicator', async ({ page }) => { + await page.setContent( + ` + + + Checkbox + + + `, + config + ); + + // The item owns the focus indicator for single-input items, so the + // checkbox must not become focusable itself. + const checkbox = page.locator('ion-checkbox'); + const item = page.locator('ion-item'); + await expect(checkbox).not.toHaveClass(/ion-focusable/); + await expect(item).toHaveClass(/ion-focusable/); + }); + + test('checkbox in a multi-input item should be focusable', async ({ page }) => { + await page.setContent( + ` + + + Checkbox 1 + Checkbox 2 + + + `, + config + ); + + // Multi-input items do not draw a single focus indicator, so each control + // must be able to show its own. + const checkboxes = page.locator('ion-checkbox'); + await expect(checkboxes.nth(0)).toHaveClass(/ion-focusable/); + await expect(checkboxes.nth(1)).toHaveClass(/ion-focusable/); + }); + }); +}); + configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => { test.describe(title('checkbox: a11y'), () => { test.describe(title('checkbox: font scaling'), () => { diff --git a/core/src/components/radio/radio.tsx b/core/src/components/radio/radio.tsx index bb343c8c858..d4476dfdb51 100644 --- a/core/src/components/radio/radio.tsx +++ b/core/src/components/radio/radio.tsx @@ -1,5 +1,5 @@ import type { ComponentInterface, EventEmitter } from '@stencil/core'; -import { Component, Element, Event, Host, Method, Prop, State, Watch, h } from '@stencil/core'; +import { Build, Component, Element, Event, Host, Method, Prop, State, Watch, forceUpdate, h } from '@stencil/core'; import { isOptionSelected } from '@utils/forms'; import { addEventListener, removeEventListener } from '@utils/helpers'; import { createColorClasses, hostContext } from '@utils/theme'; @@ -27,6 +27,7 @@ import type { Color } from '../../interface'; export class Radio implements ComponentInterface { private inputId = `ion-rb-${radioButtonIds++}`; private radioGroup: HTMLIonRadioGroupElement | null = null; + private itemFocusObserver?: MutationObserver; @Element() el!: HTMLIonRadioElement; @@ -150,6 +151,22 @@ export class Radio implements ComponentInterface { this.updateState(); addEventListener(radioGroup, 'ionValueChange', this.updateState); } + + // The item toggles `item-multiple-inputs` after this control renders and as + // inputs are added or removed. Re-render when it flips so the focus + // indicator stays in sync. + const item = this.el.closest('ion-item'); + if (item && Build.isBrowser && typeof MutationObserver !== 'undefined') { + let wasMultipleInputs = item.classList.contains('item-multiple-inputs'); + this.itemFocusObserver = new MutationObserver(() => { + const isMultipleInputs = item.classList.contains('item-multiple-inputs'); + if (isMultipleInputs !== wasMultipleInputs) { + wasMultipleInputs = isMultipleInputs; + forceUpdate(this); + } + }); + this.itemFocusObserver.observe(item, { attributes: true, attributeFilter: ['class'] }); + } } disconnectedCallback() { @@ -158,6 +175,10 @@ export class Radio implements ComponentInterface { removeEventListener(radioGroup, 'ionValueChange', this.updateState); this.radioGroup = null; } + if (this.itemFocusObserver) { + this.itemFocusObserver.disconnect(); + this.itemFocusObserver = undefined; + } } private updateState = () => { @@ -216,6 +237,7 @@ export class Radio implements ComponentInterface { const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this; const mode = getIonMode(this); const inItem = hostContext('ion-item', el); + const inMultipleInputsItem = hostContext('ion-item.item-multiple-inputs', el); return ( { + test.describe(title('radio: focus indicator'), () => { + test('standalone radio should be focusable', async ({ page }) => { + await page.setContent( + ` + + + Radio + + + `, + config + ); + + const radio = page.locator('ion-radio'); + await expect(radio).toHaveClass(/ion-focusable/); + }); + + test('radio in a single-input item should not show its own focus indicator', async ({ page }) => { + await page.setContent( + ` + + + + Radio + + + + `, + config + ); + + // The item owns the focus indicator for single-input items, so the radio + // must not become focusable itself. + const radio = page.locator('ion-radio'); + const item = page.locator('ion-item'); + await expect(radio).not.toHaveClass(/ion-focusable/); + await expect(item).toHaveClass(/ion-focusable/); + }); + + test('radio in a multi-input item should be focusable', async ({ page }) => { + await page.setContent( + ` + + + + Radio 1 + + + Radio 2 + + + + `, + config + ); + + // Multi-input items do not draw a single focus indicator, so each control + // must be able to show its own. + const radios = page.locator('ion-radio'); + await expect(radios.nth(0)).toHaveClass(/ion-focusable/); + await expect(radios.nth(1)).toHaveClass(/ion-focusable/); + }); + }); +}); + /** * This behavior does not vary across directions */ From 81736bf4adc4487c3b087a9e9c20df5e22d2ca24 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Fri, 24 Jul 2026 10:51:47 -0700 Subject: [PATCH 02/12] fix(toggle): show keyboard focus indicator via focusable track ring --- .../components/toggle/test/a11y/toggle.e2e.ts | 60 +++++++++++++++++++ core/src/components/toggle/toggle.ios.scss | 7 +++ .../components/toggle/toggle.ios.vars.scss | 3 + core/src/components/toggle/toggle.md.scss | 7 +++ .../src/components/toggle/toggle.md.vars.scss | 3 + core/src/components/toggle/toggle.scss | 4 -- core/src/components/toggle/toggle.tsx | 4 ++ 7 files changed, 84 insertions(+), 4 deletions(-) diff --git a/core/src/components/toggle/test/a11y/toggle.e2e.ts b/core/src/components/toggle/test/a11y/toggle.e2e.ts index 26f5e1f496f..6a50f9de123 100644 --- a/core/src/components/toggle/test/a11y/toggle.e2e.ts +++ b/core/src/components/toggle/test/a11y/toggle.e2e.ts @@ -21,3 +21,63 @@ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, }); }); }); + +/** + * These assert the `ion-focusable` class the component controls, not the + * rendered ring. `ion-focused` is not asserted directly because it depends on + * keyboard-mode detection, which is unreliable on WebKit. The class is + * mode-independent, so only md is exercised. + */ +configs({ directions: ['ltr'], modes: ['md'] }).forEach(({ title, config }) => { + test.describe(title('toggle: focus indicator'), () => { + test('standalone toggle should be focusable', async ({ page }) => { + await page.setContent( + ` + + Toggle + + `, + config + ); + + const toggle = page.locator('ion-toggle'); + await expect(toggle).toHaveClass(/ion-focusable/); + }); + + test('toggle in a single-input item should be focusable', async ({ page }) => { + await page.setContent( + ` + + + Toggle + + + `, + config + ); + + // Unlike checkbox/radio, a single-input item does not suppress a toggle's + // own indicator. + const toggle = page.locator('ion-toggle'); + await expect(toggle).toHaveClass(/ion-focusable/); + }); + + test('toggle in a multi-input item should be focusable', async ({ page }) => { + await page.setContent( + ` + + + Toggle 1 + Toggle 2 + + + `, + config + ); + + const toggles = page.locator('ion-toggle'); + await expect(toggles.nth(0)).toHaveClass(/ion-focusable/); + await expect(toggles.nth(1)).toHaveClass(/ion-focusable/); + }); + }); +}); diff --git a/core/src/components/toggle/toggle.ios.scss b/core/src/components/toggle/toggle.ios.scss index cfe12f1d5b0..02673b45ffc 100644 --- a/core/src/components/toggle/toggle.ios.scss +++ b/core/src/components/toggle/toggle.ios.scss @@ -171,3 +171,10 @@ :host(.toggle-disabled) { opacity: $toggle-ios-disabled-opacity; } + +// iOS Toggle: Keyboard Focus +// ----------------------------------------- + +:host(.ion-focused) .toggle-icon { + box-shadow: 0 0 0 4px $toggle-ios-focus-ring-color; +} diff --git a/core/src/components/toggle/toggle.ios.vars.scss b/core/src/components/toggle/toggle.ios.vars.scss index 65d955e7690..782ddfc9bc2 100644 --- a/core/src/components/toggle/toggle.ios.vars.scss +++ b/core/src/components/toggle/toggle.ios.vars.scss @@ -48,3 +48,6 @@ $toggle-ios-disabled-opacity: .3; /// @prop - The text color of the on/off labels when the toggle is checked $toggle-ios-on-off-label-checked-color: #fff; + +/// @prop - Color of the focus indicator ring for the toggle when focused +$toggle-ios-focus-ring-color: #{ion-color(primary, base, 0.2)}; diff --git a/core/src/components/toggle/toggle.md.scss b/core/src/components/toggle/toggle.md.scss index d0a3bfda360..1a0e01abffa 100644 --- a/core/src/components/toggle/toggle.md.scss +++ b/core/src/components/toggle/toggle.md.scss @@ -76,3 +76,10 @@ :host(.toggle-disabled) { opacity: $toggle-md-disabled-opacity; } + +// Material Design Toggle: Keyboard Focus +// ----------------------------------------- + +:host(.ion-focused) .toggle-icon { + box-shadow: 0 0 0 4px $toggle-md-focus-ring-color; +} diff --git a/core/src/components/toggle/toggle.md.vars.scss b/core/src/components/toggle/toggle.md.vars.scss index 63f9ef72c9a..b61fd016312 100644 --- a/core/src/components/toggle/toggle.md.vars.scss +++ b/core/src/components/toggle/toggle.md.vars.scss @@ -48,3 +48,6 @@ $toggle-md-on-off-label-color: #000; /// @prop - The text color of the on/off labels when the toggle is checked $toggle-md-on-off-label-checked-color: #fff; + +/// @prop - Color of the focus indicator ring for the toggle when focused +$toggle-md-focus-ring-color: #{ion-color(primary, base, 0.2)}; diff --git a/core/src/components/toggle/toggle.scss b/core/src/components/toggle/toggle.scss index b64107e66b0..44f849b2e03 100644 --- a/core/src/components/toggle/toggle.scss +++ b/core/src/components/toggle/toggle.scss @@ -59,10 +59,6 @@ width: auto; } -:host(.ion-focused) input { - border: 2px solid #5e9ed6; -} - :host(.toggle-disabled) { pointer-events: none; } diff --git a/core/src/components/toggle/toggle.tsx b/core/src/components/toggle/toggle.tsx index b46635c8a78..d3963704dbd 100644 --- a/core/src/components/toggle/toggle.tsx +++ b/core/src/components/toggle/toggle.tsx @@ -476,6 +476,10 @@ export class Toggle implements ComponentInterface { class={createColorClasses(color, { [mode]: true, 'in-item': hostContext('ion-item', el), + // A toggle always shows its own focus indicator: unlike checkbox and + // radio, it is excluded from the item's input cover, so an item never + // draws a focus indicator on its behalf. + 'ion-focusable': true, 'toggle-activated': activated, 'toggle-checked': checked, 'toggle-disabled': disabled, From a13534845fcebdf0da815b207ee9ff5ba3e20478 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Mon, 27 Jul 2026 06:59:22 -0700 Subject: [PATCH 03/12] fix(checkbox,radio,toggle): hide native focus ring on focused controls --- core/src/components/checkbox/checkbox.scss | 6 ++++++ core/src/components/radio/radio.ios.scss | 1 - core/src/components/toggle/toggle.scss | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/components/checkbox/checkbox.scss b/core/src/components/checkbox/checkbox.scss index bd2c0df4117..bd248d9ac0e 100644 --- a/core/src/components/checkbox/checkbox.scss +++ b/core/src/components/checkbox/checkbox.scss @@ -119,6 +119,12 @@ input { display: none; } +// The host is focusable, so the browser draws a native focus ring on it. +// Suppress it in favor of the mode-specific keyboard focus indicator. +:host(:focus) { + outline: none; +} + .native-wrapper { display: flex; diff --git a/core/src/components/radio/radio.ios.scss b/core/src/components/radio/radio.ios.scss index 775239a9ea1..9e5e1c2d23d 100644 --- a/core/src/components/radio/radio.ios.scss +++ b/core/src/components/radio/radio.ios.scss @@ -49,7 +49,6 @@ :host(.ion-focused) .radio-icon::after { @include border-radius(var(--inner-border-radius)); - @include position(-8px, null, null, -9px); display: block; position: absolute; diff --git a/core/src/components/toggle/toggle.scss b/core/src/components/toggle/toggle.scss index 44f849b2e03..fdcea3d29c3 100644 --- a/core/src/components/toggle/toggle.scss +++ b/core/src/components/toggle/toggle.scss @@ -71,6 +71,12 @@ input { display: none; } +// The host is focusable, so the browser draws a native focus ring on it. +// Suppress it in favor of the mode-specific keyboard focus indicator. +:host(:focus) { + outline: none; +} + // Toggle Wrapper // -------------------------------------------------- From 595396514036f02a36307810711630d909990dac Mon Sep 17 00:00:00 2001 From: ShaneK Date: Mon, 27 Jul 2026 08:44:09 -0700 Subject: [PATCH 04/12] test(checkbox,toggle): capture focus indicator via real keyboard focus in ion-app --- .../checkbox/test/basic/checkbox.e2e.ts | 20 +++++++++++++++---- .../toggle/test/basic/toggle.e2e.ts | 20 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts b/core/src/components/checkbox/test/basic/checkbox.e2e.ts index 733f229e4b6..6a2e159079e 100644 --- a/core/src/components/checkbox/test/basic/checkbox.e2e.ts +++ b/core/src/components/checkbox/test/basic/checkbox.e2e.ts @@ -139,6 +139,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c test.describe(title('checkbox: ionFocus'), () => { test('should not have visual regressions', async ({ page, pageUtils }) => { + // `ion-app` is required so `startFocusVisible` runs and applies the + // `ion-focused` class on keyboard focus, which drives the focus indicator. await page.setContent( ` -
- Unchecked -
+ +
+ Unchecked +
+
`, config ); - await pageUtils.pressKeys('Tab'); + const checkbox = page.locator('ion-checkbox'); + + // The focus listeners attach asynchronously, so the first Tab can miss + // them. Retry until `ion-focused` sticks before taking the snapshot. + await expect(async () => { + await page.evaluate(() => (document.activeElement as HTMLElement | null)?.blur()); + await pageUtils.pressKeys('Tab'); + await expect(checkbox).toHaveClass(/ion-focused/, { timeout: 250 }); + }).toPass({ timeout: 5000 }); const container = page.locator('#container'); diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts b/core/src/components/toggle/test/basic/toggle.e2e.ts index 9502df83b55..a86368cec2b 100644 --- a/core/src/components/toggle/test/basic/toggle.e2e.ts +++ b/core/src/components/toggle/test/basic/toggle.e2e.ts @@ -96,6 +96,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c test.describe(title('toggle: ionFocus'), () => { test('should not have visual regressions', async ({ page, pageUtils }) => { + // `ion-app` is required so `startFocusVisible` runs and applies the + // `ion-focused` class on keyboard focus, which drives the focus indicator. await page.setContent( ` -
- Unchecked -
+ +
+ Unchecked +
+
`, config ); - await pageUtils.pressKeys('Tab'); + const toggle = page.locator('ion-toggle'); + + // The focus listeners attach asynchronously, so the first Tab can miss + // them. Retry until `ion-focused` sticks before taking the snapshot. + await expect(async () => { + await page.evaluate(() => (document.activeElement as HTMLElement | null)?.blur()); + await pageUtils.pressKeys('Tab'); + await expect(toggle).toHaveClass(/ion-focused/, { timeout: 250 }); + }).toPass({ timeout: 5000 }); const container = page.locator('#container'); From 1568d4a789fe0475cbfa8ab3e8c8270b322aea74 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Mon, 27 Jul 2026 09:04:42 -0700 Subject: [PATCH 05/12] chore(test): trying to minimize screenshot width --- core/src/components/checkbox/test/basic/checkbox.e2e.ts | 2 +- core/src/components/toggle/test/basic/toggle.e2e.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts b/core/src/components/checkbox/test/basic/checkbox.e2e.ts index 6a2e159079e..aabb64b9ccf 100644 --- a/core/src/components/checkbox/test/basic/checkbox.e2e.ts +++ b/core/src/components/checkbox/test/basic/checkbox.e2e.ts @@ -145,7 +145,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c ` diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts b/core/src/components/toggle/test/basic/toggle.e2e.ts index a86368cec2b..1867964ca33 100644 --- a/core/src/components/toggle/test/basic/toggle.e2e.ts +++ b/core/src/components/toggle/test/basic/toggle.e2e.ts @@ -102,7 +102,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c ` From 409a0ba1639930da506e1d8a499e12ed9d954636 Mon Sep 17 00:00:00 2001 From: ionitron Date: Mon, 27 Jul 2026 16:15:59 +0000 Subject: [PATCH 06/12] chore(): add updated snapshots --- ...kbox-focus-ios-ltr-Mobile-Chrome-linux.png | Bin 2018 -> 2154 bytes ...box-focus-ios-ltr-Mobile-Firefox-linux.png | Bin 2442 -> 2878 bytes ...kbox-focus-ios-ltr-Mobile-Safari-linux.png | Bin 2870 -> 3013 bytes ...item-focus-ios-ltr-Mobile-Chrome-linux.png | Bin 2090 -> 1918 bytes ...item-focus-ios-ltr-Mobile-Safari-linux.png | Bin 2803 -> 2723 bytes ...ggle-focus-ios-ltr-Mobile-Chrome-linux.png | Bin 2390 -> 2722 bytes ...gle-focus-ios-ltr-Mobile-Firefox-linux.png | Bin 2967 -> 3473 bytes ...ggle-focus-ios-ltr-Mobile-Safari-linux.png | Bin 3423 -> 3655 bytes ...item-focus-ios-ltr-Mobile-Chrome-linux.png | Bin 2507 -> 2346 bytes ...item-focus-ios-ltr-Mobile-Safari-linux.png | Bin 3266 -> 3190 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-focus-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-focus-ios-ltr-Mobile-Chrome-linux.png index 45885364c1257bb166004443f0910fe3ee1881f1..86c807e630c2641057565b2e275c73997169274b 100644 GIT binary patch delta 2142 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 U2mI0b(EtDd07*qoM6N<$f_X0^{{R30 delta 2005 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 Z{{=~eII=?abSMA-002ovPDHLkV1hbr$aDYz delta 2835 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 GiT?q%7iDz- diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-in-item-focus-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-in-item-focus-ios-ltr-Mobile-Chrome-linux.png index 2c0dcdc0baa0bc9c24bdb93f63250c49172f0c17..b7c449e6f9e543b01a8b7b7a49ccdd0453353fb5 100644 GIT binary patch delta 1903 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 Hu0mjfWFY&k diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-in-item-focus-ios-ltr-Mobile-Safari-linux.png b/core/src/components/checkbox/test/basic/checkbox.e2e.ts-snapshots/checkbox-in-item-focus-ios-ltr-Mobile-Safari-linux.png index 9dc5aed80d80fa2afc7c7dc4c4103496efde9d59..b465b40ad93098c2fefaae6b86e5be63365f1cf0 100644 GIT binary patch delta 2627 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 diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-focus-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-focus-ios-ltr-Mobile-Chrome-linux.png index 0d7cbc111959c83693298db620045a82fa509b80..26dc586af8e4b5e037f04ee859dde99b1a0999b5 100644 GIT binary patch delta 2715 zcmV;M3S{-x5~3B5BYz54Nkl9w^^r~P%L`8q7 zSP_2+cCjFKL9t_3Py|I#v0?vf!GZ-5!46&&3-Pm{X_~UhCR?Z6XZ9qslg(y#c6Sml zeCPSG%$_;t&B=M6^R_v&7DZ7A!#^H8VPIf9V4z?;U{Jw$z<;2E@qj^vg)p=gWSP`> zl(0>|0C{R=;)%haV*22l@R?#5@1Ww{P86Bez=Qu;kQxr~Ccu5g_lC3^y z5tYd30EXeOd|u$=OJh7R9|4gRm5RP#lSYRS%(nThyg$Z*N2uQ*8^V8Aveg9aKFO+Y zOtW#_3Itoce1P%5WWW-f4Zd(7fz=$BO}AG*H`N5>O39~E|R7K`nv

ziQ>@FWQHo|~IX zQbSHo4&-Q5NP-X+UP{+_2mL(th|hzfqM{csUPLs4><=G4EGsJ`DPZ^R-P^WpBc{SE znRDjMxp3iv!OqZ5ji0?Ckcc&krdaf=HAgv=ui+G>C{O zAql`FsIv+I^K^Toh+=-h1h{mMk?ev>0{HdRjR6JZ*lf0>jRA$jB5K#JXb-*2Ie&2e z{P}`{g296aA3JsolZL72*RP*;7h&_QTYtCSzkgp?SU6_PnEd>F{aBRJPMtbcQ&WTC zBSwsfxOL;k4LGKb9XpO4JGNcBb_Qi?IDPuG+wESlVg=Po41t)y&6_vBeEHJ9fB$jg z#*swe@rUDZ3#ak`SsyVEX=!OFHEQJqeOCz==0zMU=C4VI) zt5>f+aNxk&wQF&!wzhWKv}q3>JQy@+5dN8k3m0Cwa%JMgiF6=Z1`ZrZD`@N2uV1ui z(edNQ=`9SLJbCit$B&^Hs&BZV&Ye5Qm8oIJjva>%9lCe#9$mE<0?W(Gq5C&)-V7Kp z05fkcDmEltI>r+?V8v>+67xW_27i(Qc-;dnNsijVB%C{U?&QgnuV23|E-qfMU;*Ma z+P-n)Mr^W=A3r{M^5o^qm(!E%>d8h3S75t9k>XA&wrjhL-33J z2ci(e(61~5ojP^=`0=>FR+uqkMs;;HjkC_2IRmrY zty?z|ihhqAIRfLM>1^1rVe{wDr`NM*&&H>wfU{@MBJ%IiqX({Gz_Gb+-@c8F8&@V) z4J6pKX%k2`WXKS0hAjz%vwr}Imn~b?rArswf?wOacP~iK76>=Cx*b%(o$UX?AcT6jJ&^l_wK|n1b^Ks!WKYD2w#YK zfV31-21R!?L5QaF`0)YOx1ypVqVdN|!^u<-Kb%LpLgn>KIW99JNX=@32W+kgK2Nesg(a6zfD`pc<%7dG5PlaM;AWZj0x zY@2t8Zx68Zu$dk`dVi#EL|lf?-o1Or9*Y2{Z{NNM(Y2NzKYr}oxwEROD)vC=27kA* zvT|f25ZsYaG96bYdSb7`cWl|Re{vIlqpj#Uc894MyR!Y`*s9Yh=09}7|%6p*1-G1VPj?Q z-n~0--aNSNyu7@)16QqDh1>z^M5uvqZ^DELNGL#pxH75zM7)Cjvu4dgU>H~6(xpq0 zVIs~z_K1W62?%vk29c&a5h^NbrT`yA%tPwZ0&-aSQO~c&_Y3g8*REZ|($AbZleQod z#KP^`wTl=4qJKXGV*B>(gU`lSm}L|jj0}V_U|q4%X&?zALW?vGHz*Tc;MJ>F7>EP` zEQuj-`SRsnuNVAA_z7ROb?a7m7GfCLPOhxce0U|hl_!u!%mbvQn1Iv=!+C6uGm5AL z&Y{2ZgFMulA>DUopcB2jf92Lw^cXBvucX4@-`qiq={Z1x8^kWk7ONK>sR#W>_>`wPDtlB|4C z-)9Q9SV_=He#xQ_OAWoEvWb!meWeKsMmR}dW^%jTs29;^m3k6HWv>?N|u5j;g~cz~oSThD{$)q)5fG`{c52V|>HwCM9g ziX5j}Eim#UDU1iLh~g@_%w;q@G##;DWPghQ<3a19-lvqh*sO3dREl6^sWADi{wKRQwMB0RR8%5k7hV000I_L_t&o02FuG V%5l`igPH&U002ovPDHLkV1g4i|APPk delta 2380 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 delta 2962 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 IM6N<$g49rmf&c&j diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-focus-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-focus-ios-ltr-Mobile-Safari-linux.png index c20935c06b8838e343812906d57f1ae16c0ac4ac..8153ee087f60e873599549d4b846e01cb72bb12a 100644 GIT binary patch delta 3625 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 delta 3391 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 LseY}lQ_TMX0=$Wh diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-in-item-focus-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-in-item-focus-ios-ltr-Mobile-Chrome-linux.png index ee7a99593cd9ab939c9e878678740130e83bc900..e356b738007db80274313cf9162c32964e76620a 100644 GIT binary patch delta 2336 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 M07*qoM6N<$f?V>hga7~l diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-in-item-focus-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/basic/toggle.e2e.ts-snapshots/toggle-in-item-focus-ios-ltr-Mobile-Safari-linux.png index 19bd30c2be0cdac1fd07888b4798dbccb5bc7688..50bca49651c763569420743643fd8258aa68b126 100644 GIT binary patch delta 3149 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 AO#lD@ delta 3233 zcmW-jcRbbq7sqetcC)&_T$H`tZ`M_kO-PhoX5xOcviG{ijeBKhlN~ZbR^(bCMA_L~ z%7`D=%5`n}z59Ls`26vHocH6r&w8Eb{;hF3Ki{oIomfV0 zK6N`|HQ{L2hwYa%G6LKGVW}oH`4q(;T-j(ONxMHC`WQHHkSc06ld~>QV7*(>pBG-0eH!6iz-2d)a^t;_G0 zHPhPX5kTPKi`WR3)#bOiyD;7^!cJrZ zyEy&T%P>gZP=sYw&vU7yw6wIH{iq}~aK#Rb=-fLv@S?06@g>4Wo~MkBJr>f-jh%M> zf<~cH*I-Z_4eoA`61PdE1uq=-W^^r5qiO(l&HrY+M&ac=V&?)%Dep?#4{ZF%^Ddj4 zab_w4it!+n^LL*YP+aj5`be7g<*&&ZlGae;a*A8S=H_NmVIfZW&neTP8;V{bL)h!t zB#H92q@)lz_V6U|8=jeY;O17fvhW5;Yh2EZ z>p-oubxw@eWx`cYvDA1~UJM2U!kKcGc5OS`HwdRv!C>SX=6uG=iBqF)7Kyuc8C}rnEFNJDUSC(Ahzv2pL(U zE<<_o*LZv{x=OMAgG3Hj;7m$J6Z7&w*fezv5vJIlI%9!rpqdi-`kI`GamvdC9qv?bpB*m6r=+KQ9qrnR`4%}kIW47Ig^bj#P_kvcpy_=@0Z$udbsjxR zUhxTsN5u@-O^_)4nYW#^4{ke6h*Df_+>;G&QiZAz=X#%OJxYSBzL>$Mdfs*W{6VZX^hxwr|AzmUx?tw65JQ44(0Me z7)@z;d0|mecx){FR`a%!YvZppQpig*O4G$fY_vpg6&ym_e|Z{MS?QTzO<0ePj#5%m zN^`U&b#!!s$OCt@Go_-sV_4(&M3_`#acC4wMML8YVMBtS9~Z+aK}9bwkEsjm;Bjzp z&>FvXfOePR;84V*@ZWzm{NqRbSDVG39k{WHiCy5P>``xCz{>Schl_M8LwWH%OaC5h z%~d>YP6LTGdp|xo*@Lx?SA040T)kw}<7fMYbrLCHDeewrOpZdKh?>{IswN*A88Oc` zxY^G&`9Lh1yrbgS@9fUHwMn|oD}Y2885un`Hm=1`)_HrlX~X@G*Ggplwm5Fzz73I* zmaYvT+j)9=_V)D^e*Bn5eTi{rP<}fhHT7cqr{I&R*1$VntJpz75s{enb;qr?Kj$^) zP2q5U1U)oLqww{>ipO-`w6ihm&r#3)S{BY>rdngehY#sUlU4TPWk!%}8ILdqcIn}% zsov8gvaIJatmhSHVR7+G`7HwVi>01;au<_c^|Nl;troH_L^nsSJ8-+TrzL<4Io#>I z@~*TL-IpfTk9{qP(^ERaA0K0s4u4Yb?(RbT|C}8J{7N-Jii_LL)H#6W9vL0&EXfNg zdnGwv@5Czaw`DV3YilaXLLsQ-!=E&`cCUFGK6<34tIL?L9~m7@8yyq#uA&0ubb*2~ z`(Vcqc(C;=oYnG8eSK)&vz4)y3>OI#jX-1um*SNx&-q=X*{>*{qI{b-rok5-&9bDzbAS@}yaXN5$SAD=eN)*Y<;(mBW3LTiR=-pD?+<{Ud&oWV`ew z&c@!pyvonlmuiyA9{u^`Eadq37)C>7L2wTx5{bMYgz0E$Uj}LLc6AM}d8_mNhcB_0 zpm2iTaUZwYx(fYX@KUG)+?X>eAg(4ViVO*XH5+;pxoEluOsd+L{t%IeJ(tbjz6X=^edfhlmm3?X zXkDLY!+J^`7xwS^*gFn6Z`eHpuyCw_1Xq~XM@zJwCYe|Tr(WXn=gG(1vg`jjoUeAe zH>y`*S`!9##ZPa!={Bq~kYa8RY)(syLRopatj8kF!*p@mU*A%L4(9w?C=*YJ-lIAY zg}q_5mczvu4h8>&qKD~*mX^9;%un_=**_L{pwU21K|9sB%u0iX_$v$}1^1liTQUN- z8Y6`Bf|9_M-Ba=qbwXO&7oeItsB1QxGxefYpR!-QV!UzV##QXGB_3`qEWM#PajG~W zZuLoFgM2-y=-z7M%9VAG<~eU~?}VJ30g#R4^Y)rwZV}BGy*&L+psFwbb6qY+chvSXRuI6)GcZVR2b&#TU5$n3g+vgvBSc~a^sck% z+E1akBPigr5+?GO4{<;YMOo<1&d$IdR^ZYzqyTiPp53IO3MDj$hib4hY7|PYjX%DW zJZKNFM?>H$prA5-HZqx zT=HxLJa#Qk1FVDBaz5(}Ro~A-l(DD3FM)|fqx|ReU*zj(@n44CGpIIyZ@sU=`ozSle1GG)yn{Uo z0vLCEauRyz^9t%Gdd2w$n>YgMdh75YwCXxNG*)AYAa+@ax6hRh5VgpMX$4okfGp(A z8(J`4b&kJo;U0haO|>f#U@`1J!fWW~+gvC1g|s043~9gJ$rG*k2gl38ihlDP|JIsm uw9@i+sW*+4EIl@%&0?Wv3;q(scTUYPw<#0Wr&$RBpVmEH^-5KA*#7{K9$z2; From 6a3c19919cc3a80f206cd8cea5c5aff96cb97e33 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Mon, 27 Jul 2026 09:54:31 -0700 Subject: [PATCH 07/12] Bdocs(checkbox,radio): add multi-input item focus demo to item test pages --- core/src/components/checkbox/test/item/index.html | 13 +++++++++++++ core/src/components/radio/test/item/index.html | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/core/src/components/checkbox/test/item/index.html b/core/src/components/checkbox/test/item/index.html index 2548cbfaad0..9087d6c8e67 100644 --- a/core/src/components/checkbox/test/item/index.html +++ b/core/src/components/checkbox/test/item/index.html @@ -245,6 +245,19 @@

Multiline Label

+ +

Multiple Inputs

+
+
+

Two Checkboxes (multi-input item). Focus is on the input, not the item.

+ + + Checkbox 1 + Checkbox 2 + + +
+