"Progressive enhancement may improve attention; it may not become an entrance fee."
The scene beside paper
A dimmed screen interrupts copying, so requesting a screen Wake Lock is a useful courtesy. It is still a browser capability that may be unsupported, denied, released when hidden, or revoked by the system.
Make it interface state
Request it only during an active writing view, catch failures, release it on exit, and reacquire after visibility returns when appropriate. Surface a quiet status rather than blocking the passage.
When help becomes interference
Treating Wake Lock as required breaks the app on unsupported devices. Retrying without visibility checks wastes power. Forgetting release turns a focus aid into a battery leak.
Test from the hand outward
Do not judge “Wake Lock Fails Soft” from a browser screenshot alone. Put a pen in one hand and touch the screen only when necessary; trace type size, button distance, scrolling, rotation, and failure. If one enhancement is denied, the passage must remain readable and transcribed state writable.
Verify it
Test supported, unsupported, denied, hidden, visible-again, and explicit-exit paths. Include a small phone, large tablet, bright and dark rooms, and keyboard-only use. Count how often the feature steals the eyes from the pen instead of merely admiring its appearance.
Disappearing still needs state
Hiding chrome, acquiring wakefulness, and attaching a photo must all be reversible. Exit, release, deletion, and failure copy let technology disappear while remaining able to explain itself when needed.
Guard the acquire-exit race
An exit can happen while navigator.wakeLock.request is still pending. Record desired state and a request token; if the promise resolves after exit or after a newer request, release that newly acquired sentinel immediately instead of publishing it as active.
Cleanup must identify the sentinel it owns so an older release event cannot clear a newer lock.