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 iframerendered?Chrome 137 behaviour
display: nonenopaused
visibility: hiddenyes (layout, no paint)keeps playing
hidden attributenopaused
scrolled offscreenyeskeeps playing
content-visibility: hiddennopaused
parent collapses to 0×0nopaused

see also