Sticky activation

Sticky activation (or "sticky user activation") is a window state that indicates a user has meaningfully and directly interacted with the window since page load. Once active, the state lasts for the duration of the session.

The state is enabled following any user interaction, when the window has focus, that results in the browser generating one or more of the following:

  • A mousedown or pointerdown event for a mouse.
  • A pointerup event for any other kind of pointer.
  • A touchend event.
  • A keydown event, other than for the escape or browser shortcut keys.

The window is not user-activated by events that aren't necessarily caused by intentional interaction with the window, such as mouse move events or wheel events.

Sticky activation is used to control access to certain features, blocking them if the user hasn't interacted with the page. For example, it can be used to ensure that controlled features in cross-origin frames don't run code on page load. See Features gated by user activation for more information.

The UserActivation.hasBeenActive property can be used to programmatically check the current window's sticky activation state.