Wheel event handling is funky. EventHandler::platformPrepareForWheelEvents starts by finding a target node with findEnclosingScrollableContainer() which looks up the ancestor DOM chain. After finding a target node, handleWheelEventInAppropriateEnclosingBox() walks up the render containing block hierarchy looking for a scrollable parent to handle the event (with no hit-testing, so we can scroll things when over their border, for example). This causes confusion when we set up latching state, but fail to hit the scroller in the containing block tree walk that we saw in the DOM ancestor tree walk. https://codepen.io/smfr/pen/rQZqxo
Created attachment 355840 [details] Testcase