Sideways, whether your phone likes it or not
Hold your phone portrait, tap play, and watch a controller flip itself sideways anyway — no “please rotate your device” screen, no waiting for you to actually turn the phone. That’s the trick YouTube’s mobile player has used for years, and it’s exactly what doxcon, the newest experiment in the lab, is testing for gamedoxs controllers.
Turns out there’s no single API that does this everywhere. Android Chrome will genuinely lock the screen to landscape with the Fullscreen API plus screen.orientation.lock('landscape') — the OS rotates with it, real pixels, real orientation. iOS Safari has neither: no orientation-lock API at all, and it only picked up fullscreen for regular elements in iOS 16.4. So doxcon runs two layers and falls back automatically:
- Native lock — Fullscreen API + Screen Orientation Lock, where the browser actually supports it.
- CSS fallback — rotate the fullscreen frame 90° and swap its width/height, faking landscape while the phone stays physically portrait. Same trick most mobile video players lean on when the real API isn’t there.
It’s a feasibility test for now, not wired into a real controller yet — the page’s diagnostics panel just shows which path kicked in on your device: native lock, CSS fallback, or neither. Which is the whole point of a lab page: know what each phone actually supports before betting a real controller’s layout on it.