[Webkit-unassigned] [Bug 254861] New: iPadOS: Viewport doesn't correctly restore after dismissing software keyboard for installed web apps

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Apr 1 01:21:32 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=254861

            Bug ID: 254861
           Summary: iPadOS: Viewport doesn't correctly restore after
                    dismissing software keyboard for installed web apps
           Product: WebKit
           Version: Safari 16
          Hardware: iPhone / iPad
                OS: iOS 16
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: ik at rejh.nl
                CC: bfulgham at webkit.org, simon.fraser at apple.com,
                    zalan at apple.com

Created attachment 465722

  --> https://bugs.webkit.org/attachment.cgi?id=465722&action=review

Screenshot of twitter web app after dismissing the keyboard

Reproduce:

1. On an iPad Mini (5th gen), go to twitter.com, install the web app to the home screen
2. Open the installed web app, log in, navigate to a DM / chat
3. Tap the message input on the bottom (the software keyboard pops up, pushing the page/viewport up
4. Dismiss the keyboard via the button in the lower right corner

Alternative:

The same issue can be observed in the testcase I made for another issue:
https://testcase.rejh.nl/webkit-safe-area-inset-does-not-update/

What happens:

The viewport jumps down, then back up to where it was before the keyboard was dismissed. 

See attached screenshot (1, red).

See attachment.

Notes:

1. Elements with position: fixed *do* restore to the correct position (like the menu bar on the left) but it's only visually. Touch events still fire relative to the offset of the viewport. Example: After following the steps, tap the 'twitter' icon in the top left corner. It triggers a click event on the Bookmarks icon (which was positioned at that position when the keyboard was still visible). See screenshot (2, yellow)

2. The viewport jumps back to the correct position if you slightly scroll somewhere on the page - unless it has `overscroll-behavior: none (I assume this is because it prevents the scroll to bubble up to the root)

3. If the entire page (or element that fills the entire page) has `position: fixed`, everything *seems* to be in the correct position but touch events fire in the wrong place. Touch events in the lower part of the screen (where the keyboard was displayed) do not respond at all. This includes scrolling: the entire lower part of the viewport can not be scrolled.

4. When 2 and 3 are combined, it completely breaks the site. The only way to restore normal behavior is to re-open the keyboard and dismiss it via a tap somewhere in the document. 

I'm not sure if all iPads are affected, I only have an iPad Mini (5th gen). iPad (10th gen) simulator works as expected. iPhone also unaffected. It only affects installed web apps, the same steps in regular Safari work as expected.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230401/482e0c58/attachment.htm>


More information about the webkit-unassigned mailing list