PWA UIv0.1
Docs / Resources / Device QA

Resource

Device QA

Run this checklist against a production build and record the device, OS and browser version, display mode, date, tester, and any linked issue.

Required surfaces

  • Recent Face ID iPhone in Safari.
  • The same iPhone with the docs app installed to the Home Screen.
  • Android Chrome on a current device or emulator.
  • The same Android surface with the PWA installed.
  • Desktop Chrome, Safari, and Firefox at a narrow viewport.

App frame and safe areas

  • Top navigation clears the status and notch region in portrait and landscape.
  • The bottom tab bar clears the home indicator and remains reachable.
  • Content scrolls between fixed application chrome without moving the document unexpectedly.
  • Browser and standalone heights both recover after rotation.
  • No component assumes a named device or hard-coded phone dimension.

Overlays

  • BottomSheet opens from touch and keyboard activation.
  • Backdrop and Escape dismiss once, then focus returns to the trigger.
  • Slow and fast downward swipes feel controlled without scrolling the page behind the sheet.
  • Long sheet content scrolls without starting a dismissal gesture unexpectedly.
  • ResponsiveDialog uses a sheet on narrow screens and a centered dialog on wide screens.
  • Resizing an open ResponsiveDialog leaves one focus trap and preserves its open state.
  • ActionSheet groups are clear, destructive actions are distinct, and Cancel is easy to reach.

Software keyboard

  • Focus every field in the mobile form and BottomSheet form.
  • The focused input remains visible when the keyboard opens.
  • Pinned actions clear both the keyboard and bottom safe area.
  • Closing the keyboard restores the layout without a jump or permanent blank space.
  • Repeat the checks after rotating with a field focused.

Installation, updates, and lifecycle

  • The install prompt appears only after the browser reports availability and the user chooses to install.
  • Accepting, dismissing, and completing installation each leave the interface in the correct state.
  • A waiting service worker displays one update prompt and never reloads without an explicit choice.
  • Applying an update activates the waiting worker; deferring it keeps the current session usable.
  • Offline feedback appears and clears as connectivity changes without blocking application content.
  • Backgrounding and restoring the app do not duplicate listeners, prompts, or network work.
  • Unsupported browsers and unregistered service workers fail quietly with an accurate state.

Accessibility and motion

  • Tab and Shift+Tab remain inside open overlays.
  • Titles and descriptions are announced for every overlay.
  • Important controls have a visible focus ring and at least a 44px touch target.
  • VoiceOver and TalkBack identify the active tab and every icon-only control.
  • Reduce Motion removes nonessential transitions without hiding state changes.