Browser wake lock sounds simple, but it is deliberately limited. The API is
designed to keep a visible screen awake temporarily, not to override every
power policy on every device.
Wake lock is a browser request, not a permanent system switch
When a page asks for a screen wake lock, the browser is not promising to keep
the display awake forever. It is granting a temporary request that can still
be limited by the operating system, low-power behavior, background-tab rules,
or the browser's own safety checks.
That is why NoSleepScreen uses a visible timer and status area instead of
pretending the tool has full control over the device.
Why a user click matters
Browsers tend to allow sensitive actions only after user intent is clear.
Starting wake lock from a button press is one of the cleanest ways to show
that intent. If a site tried to activate wake lock automatically without a
user action, many browsers would reject it.
Why hidden tabs can stop the session
Wake lock is usually tied to the browsing context that is currently active
and visible. If the user switches tabs, minimizes the browser, locks the
device, or puts the page in the background, the browser may release the lock.
This is normal behavior and one of the most common reasons people think the
tool is broken when it is actually following platform rules.
Why secure context matters
A wake-lock request should run on a secure origin such as HTTPS or localhost.
This protects users and gives browsers a safer environment for advanced APIs.
If the page is opened from an insecure origin, a wake-lock request may fail
immediately before the session ever starts.
The practical takeaway
Use wake lock for short, intentional sessions.
Keep the page visible during the session.
Expect more variability on mobile devices.
Use system settings or dedicated hardware for mission-critical needs.