Skip to content

feat(modal): default handleBehavior to "cycle" for sheet modals#31222

Open
thetaPC wants to merge 1 commit into
major-9.0from
FW-6657
Open

feat(modal): default handleBehavior to "cycle" for sheet modals#31222
thetaPC wants to merge 1 commit into
major-9.0from
FW-6657

Conversation

@thetaPC

@thetaPC thetaPC commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Issue number: resolves internal


What is the current behavior?

handleBehavior on ion-modal defaults to "none". For sheet modals that show a handle, the handle is purely decorative: it is not focusable, it is skipped in the tab order, and activating it does nothing. Keyboard and screen reader users cannot resize the sheet unless the developer explicitly opts in with handleBehavior="cycle".

What is the new behavior?

  • handleBehavior now defaults to "cycle".
  • Sheet modal handles are focusable by default and activating them (click, keyboard, or screen reader) cycles the sheet through its available breakpoints. This mirrors native iOS sheet behavior and keeps the sheet operable with assistive technology out of the box.
  • Rewrote the handleBehavior property documentation to lead with what each value does and how "cycle" helps accessibility, improving findability and learnability.
  • Developers can opt out with handleBehavior="none" to restore the previous decorative handle.

Does this introduce a breaking change?

  • Yes
  • No

This changes the default interaction and focus behavior of sheet modals that use a handle. The handle becomes focusable and enters the tab order, and activating it now cycles breakpoints where it previously did nothing. Sheet modals that relied on the handle being inert should set handle-behavior="none":

<ion-modal handle-behavior="none"></ion-modal>

Other information

Preview

@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ionic-framework Ready Ready Preview, Comment Jun 16, 2026 6:33pm

Request Review

@github-actions github-actions Bot added the package: core @ionic/core package label Jun 16, 2026
@thetaPC thetaPC marked this pull request as ready for review June 16, 2026 21:02
@thetaPC thetaPC requested a review from a team as a code owner June 16, 2026 21:02
@thetaPC thetaPC requested review from BenOsodrac and ShaneK and removed request for BenOsodrac June 16, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant