UserActivation

Baseline 2023

Newly available

Since November 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

The UserActivation interface provides information about whether a user is currently interacting with the page, or has completed an interaction since page load.

This API is only available in the window context and not exposed to workers.

Instance properties

UserActivation.hasBeenActive Read only

Indicates whether the current window has sticky user activation.

UserActivation.isActive Read only

Indicates whether the current window has transient user activation.

Description

An object of this type is accessed via the navigator.userActivation property, and can be used to query information about a window's user activation state.

A user activation either implies that the user is currently interacting with the page, or has completed an interaction since page load. User activation can be triggered by a button click, pointer touch, or some other user interaction with the page.

There are two kinds of window user activation states:

See Features gated by user activation for more information and a list of APIs that require either sticky or transient user activation.

Examples

Checking if a user gesture was recently performed

Use navigator.userActivation to access the UserActivation object, and then UserActivation.isActive to check whether the user is currently interacting with the page (Transient activation).

js
if (navigator.userActivation.isActive) {
  // proceed to request playing media, for example
}

Checking if a user gesture was ever performed

Use UserActivation.hasBeenActive to check whether the user has ever interacted with the page (Sticky activation).

js
if (navigator.userActivation.hasBeenActive) {
  // proceed with auto-playing an animation, for example
}

Specifications

Specification
HTML Standard
# the-useractivation-interface

Browser compatibility

BCD tables only load in the browser

See also