Skip to content

iOS 26.3: Pause between inputmode="none" and focus()#5757

Open
compulim wants to merge 5 commits intomainfrom
fix-ios-26.3
Open

iOS 26.3: Pause between inputmode="none" and focus()#5757
compulim wants to merge 5 commits intomainfrom
fix-ios-26.3

Conversation

@compulim
Copy link
Contributor

@compulim compulim commented Feb 26, 2026

Related to #5678.

Changelog Entry

Fixed

  • Fixed virtual keyboard should be collapsed after being suppressed, in iOS 26.3, by @compulim in PR #5757

Description

Virtual keyboard are not collapse when we set inputmode="none" and call focus().

On iOS 26.3, we need to add a pause (either requestAnimationFrame or requestIdleCallback) between setAttribute and focus() to have the new inputmode="none" registered.

The expected behavior is recorded in the video below.

video_2026-02-26_00-53-10.mp4

Specific Changes

  • Add a pause after setAttribute('inputmode', 'none') and before focus()
  • I have added tests and executed them locally
  • I have updated CHANGELOG.md
  • I have updated documentation

Review Checklist

This section is for contributors to review your work.

  • Accessibility reviewed (tab order, content readability, alt text, color contrast)
  • Browser and platform compatibilities reviewed
  • CSS styles reviewed (minimal rules, no z-index)
  • Documents reviewed (docs, samples, live demo)
  • Internationalization reviewed (strings, unit formatting)
  • package.json and package-lock.json reviewed
  • Security reviewed (no data URIs, check for nonce leak)
  • Tests reviewed (coverage, legitimacy)

@compulim compulim marked this pull request as ready for review February 26, 2026 08:57
@@ -0,0 +1,75 @@
<!doctype html>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sad we can't run iOS emulator in our tests suite with ease. The company doesn't want their OS to have superior UX at scale.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could run it on BrowserStack but it's quite complex. Also it's pretty slow to boot up because of how BrowserStack reset the device after every test.

OEvgeny
OEvgeny previously approved these changes Feb 26, 2026
@OEvgeny OEvgeny enabled auto-merge (squash) February 26, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants