HTML, CSS & accessibility
Layouts, forms, browser behavior and accessible interface troubleshooting.
112 troubleshooting guides · Page 5 / 5
Why does an IndexedDB transaction become inactive after awaiting a network request?
IndexedDB transactions have a short activity lifecycle and may auto-commit when no work remains.
Why does a deployed service-worker update still show the old application?
A newly installed worker can wait while an older worker controls open clients.
Why does my cache return the wrong response after a query parameter changes?
Inspect the Cache.match options and cache key construction.
Why does returning with the browser Back button restore stale account data?
Back/forward cache can restore a page without a fresh load.
Why does beforeunload fail to save a draft when a mobile browser closes?
The event is not a reliable final chance to run work, especially when mobile processes are terminated.
Why do two apparently related tabs not receive BroadcastChannel messages?
Check exact origin and the browser’s storage partition context.
Why does a ResizeObserver callback cause a loop-limit warning?
The callback may change layout in a way that immediately resizes the observed element again.
Why does infinite scroll trigger too early inside a nested scrolling panel?
The observer root defaults to the viewport, which may not match your panel.
Why does preventDefault fail in a touch or wheel event listener?
A passive listener promises not to cancel the default action.
How do I debounce search without submitting unfinished IME composition text?
Track composition and schedule search only after committed input.
Why does event.target show a custom element instead of its internal button?
Shadow DOM retargets events across encapsulation boundaries.
Why does removing an anonymous listener leave duplicate callbacks after reopening a panel?
Removal requires the same function reference and matching capture setting.
How do I restore focus after closing a panel without jumping the page?
Retain the element that opened the panel and restore focus with preventScroll where supported, after confirming that element still exists and can receive focus.
Why does my async success message not get announced by a screen reader?
Keep an appropriate live region in the DOM before updating its text, and use polite announcements for ordinary status updates.
Why does posting a cancel message not stop a worker’s long synchronous loop?
A worker running one long synchronous task cannot process the queued cancel message until that task yields.
Why does pushState change the URL without firing my popstate handler?
pushState adds an entry but does not itself dispatch popstate.
Ask your own question · Sign in to post questions and answers.