demo · v137
Lifecycle tracer
A synthetic <audio>-emitting iframe inside a tall scroller. Drag it offscreen, toggle display: none, set visibility: hidden, swap the hidden attribute — the tracer logs every CSS state and every play/pause the new policy fires. Matrix at the bottom lists which states block playback in Chrome 137.
iframe paint state
audio events
state matrix
| state on iframe | rendered? | Chrome 137 behaviour |
|---|---|---|
display: none | no | paused |
visibility: hidden | yes (layout, no paint) | keeps playing |
hidden attribute | no | paused |
| scrolled offscreen | yes | keeps playing |
content-visibility: hidden | no | paused |
| parent collapses to 0×0 | no | paused |