As discussed in https://github.com/openlayers/openlayers/issues/6948#issuecomment-565375694 The check to see if the target is within the "page" uses the viewport as the MapBrowserEventHandler instance adds it's listeners to the viewport. Using Node.contains appears to have a slight performance benefit over manually walking the DOM.