MODE: A — APP SHELL · PATTERN: shell (100dvh, no doc scroll)
DEFICIT: 0px ✓ OK
inner: – vv.h: – vv.offsetTop: – vv.scale: –
docEl.clientH: – screen: – orient: – scrollY: –
window: – windowed (win<screen): – dpr: – 100dvh/svh/lvh: –
KB CYCLE: no keyboard cycle yet
INSTRUCTIONS — iPad Chrome ONLY (use the normal docked keyboard, not floating)
  1. Screenshot this readout now (baseline).
  2. Stay in MODE A. Scroll a little, tap “Input A1”, type one letter, dismiss the keyboard with its hide-key, wait 2 seconds, screenshot.
  3. Tap TEST 1, wait 1 second, screenshot. (Did DEFICIT change?)
  4. Tap MODE B. Tap the input, type one letter, dismiss the keyboard, wait 2 seconds, screenshot.
  5. If DEFICIT is 8 or more in Mode B, tap TEST 2, wait 1 second, screenshot.
  6. Trigger test (no keyboard): switch to another app (or Home), come back to this tab, screenshot. Note if DEFICIT changed.
  7. Optional: rotate the iPad to portrait and repeat step 2.
SHELL HEADER — stays pinned at top

Input A1 — near top of the scroll region:

Input A2 — near bottom of the scroll region:

End of the internal scroll region.

SHELL BOTTOM BAR — this green bar should touch the very bottom of the screen

MODE B — plain document flow. This page scrolls as one normal document (no shell, no internal scroller).

Input B1:

END OF DOCUMENT — reachable by scrolling the page
FIXED PILL · position:fixed; bottom:0 — should hug the screen bottom in both modes