[Home]

Fullscreen API

Checks which parts of the Fullscreen API the browser exposes, and that entering and exiting fullscreen work. A browser should expose either the whole API or none of it. A partial API (for example document.fullscreenEnabled without document.exitFullscreen) breaks sites that feature-detect fullscreen and then call the rest of the API.

Expected results

BrowserAPI exposed
Safari / DuckDuckGo on iPhone, mobile siteNo (only video.webkitEnterFullscreen())
DuckDuckGo on iPhone, desktop siteYes
Safari / DuckDuckGo on iPadYes
Desktop browsersYes

Every browser should pass tests 1 and 2. Tests 3–5 only apply when the API is exposed.

1. API surface

Pending

2. Feature-detect then exit

Common site pattern: if document.fullscreenEnabled is true, call document.exitFullscreen() while not in fullscreen. This must not throw synchronously; a rejected promise is fine.

Pending

3. Element fullscreen

Enter fullscreen, then use the in-page exit button. Expected: the yellow box fills the screen, fullscreenElement becomes element-target, then null after exit, and the page lays out normally afterwards.

Fullscreen target

4. Video player container fullscreen

Requests fullscreen on the player container, like YouTube does. Expected: the white caption overlay stays visible in fullscreen. If only the bare video goes fullscreen, the caption is lost.

Caption overlay

5. Native video fullscreen

Calls video.webkitEnterFullscreen() where available (all iOS browsers). Expected: the system video player opens.

User agent