Screen Orientation W3C Working Draft 06 August 2026 More details about this document This version: https://www.w3.org/TR/2026/WD-screen-orientation-20260806/ Latest published version: https://www.w3.org/TR/screen-orientation/ Latest editor's draft: https://w3c.github.io/screen-orientation/ History: https://www.w3.org/standards/history/screen-orientation/ Commit history Test suite: https://wpt.live/screen-orientation/ Editors: Marcos Cáceres ( Apple Inc. ) Léonie Watson ( TetraLogical ) Former editors: Mounir Lamouri ( Google Inc. ) Johanna Herman ( Invited Expert ) Feedback: GitHub w3c/screen-orientation ( pull requests , new issue , open issues ) Browser support: caniuse.com Copyright © 2026 World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply. Abstract The Screen Orientation specification standardizes the types and angles for a device's screen orientation, and provides a means for locking and unlocking it. The API, defined by this specification, exposes the current type and angle of the device's screen orientation, and dispatches events when it changes. This enables web applications to programmatically adapt the user experience for multiple screen orientations, working alongside CSS. This API is particularly useful for applications such as computer games, where users physically rotate the device, but the screen orientation itself should not change. The API restricts locking the screen orientation only if certain pre-lock conditions are met. Status of This Document This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index . This document is a work in progress. This document was published by the Web Applications Working Group as a Working Draft using the Recommendation track . Publication as a Working Draft does not imply endorsement by W3C and its Members. This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress. This document was produced by a group operating under the W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy . This document is governed by the 18 August 2025 W3C Process Document . Table of Contents Abstract Status of This Document 1. Example of usage 2. Concepts 2.1 Screen orientation types 2.2 The current screen orientation type and angle 3. Extensions to the Document interface 3.1 Internal Slots 4. Extensions to the Screen interface 5. ScreenOrientation interface 5.1 Internal Slots 5.2 lock() method 5.3 unlock() method 5.4 Common Safety Checks 5.5 type attribute 5.6 angle attribute 5.7 onchange event handler attribute 6. OrientationLockType enum 7. OrientationType enum 8. Algorithms 8.1 Initializing the ScreenOrientation object 8.2 Rejecting a document's current lock promise 8.3 Applying an orientation lock 8.4 Screen orientation change 8.5 Handling page visibility changes 8.6 Handling unloading documents 8.7 Fully unlocking the orientation 9. Interaction with Fullscreen API 10. Interaction with Web Application Manifest 11. Accessibility considerations 12. Privacy and Security Considerations 12.1 Event Delivery Restrictions 12.2 Anti-fingerprinting Mitigations 13. Conformance A. IDL Index B. Index B.1 Terms defined by this specification B.2 Terms defined by reference C. Acknowledgments D. References D.1 Normative references 1. Example of usage This section is non-normative. In this example, selecting the "Lock" button requests to go into fullscreen and then locks the screen to the opposite orientation. Selecting the "Unlock" button unlocks the screen. Example 1 : Locking to a specific orientation and unlocking < script > function updateLockButton ( ) { const lockButton = document . getElementById ( "button" ); const newOrientation = getOppositeOrientation (); lockButton. textContent = `Lock to ${newOrientation} ` ; } function getOppositeOrientation ( ) { return screen . orientation . type . startsWith ( "portrait" ) ? "landscape" : "portrait" ; } async function rotate ( lockButton ) { if (! document . fullscreenElement ) { await document . documentElement . requestFullscreen (); } const newOrientation = getOppositeOrientation (); await screen. orientation . lock (newOrientation); updateLockButton (lockButton); }
screen. orientation . addEventListener ( "change" , updateLockButton); window . addEventListener ( "load" , updateLockButton); </ script > < button onclick = "rotate(this)" id = "button" > Lock to... </ button > < button onclick = "screen.orientation.unlock()" > Unlock </ button > 2. Concepts To lock the screen orientation to an OrientationLockType orientation means that the screen can only be rotated by the user to a specific screen orientation - possibly at the exclusion of other orientations. The possible orientations to which the screen can be rotated is determined by the user agent, a user preference, the operating system's conventions, or the screen itself. For example, locking the orientation to landscape means that the screen can be rotated by the user to landscape-primary and maybe landscape-secondary if the system allows it, but won't change the orientation to portrait-secondary orientation. To unlock the screen orientation the end user is unrestricted to rotate the screen to any screen orientation that the system allows. 2.1 Screen orientation types A screen can be in, or locked to, one of the following screen orientations : Any The screen can be rotated by the user to any orientation allowed by the device's operating system or by the end-user. Default (unlocked) The device's default behavior for when the screen is unlocked (i.e., the active orientation lock is null ). This orientation is determined by the device's operating system, or the user agent, or controlled by the end-user, or possibly set by an installed web application . For example, when the screen orientation is unlocked and the user rotates the device, some devices will limit orientation changes to portrait-primary , landscape-primary , and landscape-secondary , but not to portrait-secondary . Landscape The screen's aspect ratio has a width greater than the height. Natural The reference orientation for the device's display, from which orientation angles are measured, as determined by the user agent, the user, the operating system, or the screen itself. For example, a computer monitor's reference orientation is typically landscape-primary , while the reference orientation for a mobile phone is typically portrait-primary . Note How a user agent determines the natural orientation is implementation-defined and varies by platform. Some user agents use a fixed orientation per device class (for example, portrait-primary for handsets and landscape-primary for tablets, desktops, and TVs), while others derive it from the screen's physical dimensions and its default rotation. For devices without an obvious upright, such as square or foldable screens, the natural orientation can therefore differ between user agents. Portrait The screen's aspect ratio has a height greater than the width. Primary The device's screen natural orientation for either portrait or landscape . Secondary The opposite of the device's screen primary orientation for portrait or landscape . 2.2 The current screen orientation type and angle The screen of the output device has the following associated concepts: Active orientation lock The screen orientation , represented as a OrientationLockType , to which the screen is locked , or null when unlocked . Current orientation angle The angle in degrees that the screen is rotated counter-clockwise from its natural orientation as derived from the screen orientation values lists . Current orientation type The screen orientation of the screen, represented as a OrientationType . The screen orientation values lists below standardize the angles associated with each screen orientation type for screens with different natural orientations: For screens with a natural portrait orientation: portrait-primary : 0° landscape-primary : 90° portrait-secondary : 180° landscape-secondary : 270° For screens with a natural landscape orientation: landscape-primary : 0° portrait-primary : 90° landscape-secondary : 180° portrait-secondary : 270° 3. Extensions to the Document interface 3.1 Internal Slots The Document interface is extended with the following internal slots: Internal Slot Description [[orientationPendingPromise]] Either null or a Promise . When assigned a Promise , that promise represents a request to lock the screen orientation. 4. Extensions to the Screen interface WebIDL partial interface Screen { [ SameObject ] readonly attribute ScreenOrientation orientation ; }; The Window object has an associated ScreenOrientation , which is a Screen 's orientation object (i.e., the ScreenOrientation instance at window.screen.orientation ). 5. ScreenOrientation interface WebIDL [ Exposed =Window ] interface ScreenOrientation : EventTarget { Promise < undefined > lock ( OrientationLockType orientation ); undefined unlock (); readonly attribute OrientationType type ; readonly attribute unsigned short angle ; attribute EventHandler onchange ; }; 5.1 Internal Slots Internal Slot Description [[angle]] Represents the screen's last known current orientation angle in degrees as an unsigned short as derived from the screen orientation values lists . [[initialType]] Represents the screen's current orientation type when the browsing context was created. [[type]] Represents the screen's last known current orientation type as an OrientationType enum value. 5.2 lock() method pre-lock conditions are optional requirements that a user agent MAY impose before allowing screen orientation locking. Common pre-lock conditions include requiring the document to be in fullscreen mode or being part of an installed web application. See 10. Interaction with Web Application Manifest and 9. Interaction with Fullscreen API for specific examples. When the lock () method is invoked with OrientationLockType orientation , the user agent MUST run the following steps. Let document be this 's relevant global object 's associated Document . Run the common safety checks with document . If an exception is thrown , return a promise rejected with that exception and abort these steps. If the user agent does not support locking the screen orientation to orientation , return a promise rejected with a " NotSupportedError " DOMException and abort these steps. If the user agent requires document and its associated browsing context to meet pre-lock conditions in order to lock the screen orientation , and those conditions are not met, return a promise rejected with a " NotAllowedError " DOMException and abort these steps. If document 's [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with an " AbortError ". Set document 's [[orientationPendingPromise]] to a new promise . Apply orientation lock orientation to document . Return document 's [[orientationPendingPromise]] . 5.3 unlock() method When the unlock () method is invoked, the user agent MUST run the following steps: Let document be this 's relevant global object 's associated Document . Run the common safety checks with document . If an exception is thrown , re-throw that exception and abort these steps. If screen's active orientation lock is null , return undefined . If document 's [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with an " AbortError ". Apply orientation lock null to document . Note : Why does unlock() not return a promise? unlock () does not return a promise because it is equivalent to locking to the default screen orientation which might or might not be known by the user agent . Hence, the user agent can not predict what the new orientation is going to be and even if it is going to change at all. 5.4 Common Safety Checks The common safety checks for a Document document are the following steps: If document is not a fully active descendant of a top-level traversable with user attention , throw an " InvalidStateError " DOMException . If document has the sandboxed orientation lock browsing context flag set, throw " SecurityError " DOMException . If document 's visibility state is "hidden", throw " SecurityError " DOMException . 5.5 type attribute When getting, the type attribute returns this 's [[type]] . 5.6 angle attribute When getting, the angle attribute returns this 's [[angle]] . Note : What does the value given for angle represent? The angle attribute represents how far the screen has rotated from its natural orientation. The screen orientation values lists specify how the angle changes depending on how the screen is rotated. 5.7 onchange event handler attribute The onchange attribute is an event handler IDL attribute for the onchange event handler , whose event handler event type is change . 6. OrientationLockType enum WebIDL enum OrientationLockType { " any " , " natural " , " landscape " , " portrait " , " portrait-primary " , " portrait-secondary " , " landscape-primary " , " landscape-secondary " }; The OrientationLockType enum represents the screen orientations to which a screen can be potentially locked . Note : Orientation support User agents might only support a subset of the possible OrientationLockType values. For example, a user agent might not support locking to the "portrait-secondary" or "landscape-secondary" orientations. " any " represents any . " natural " represents natural . " landscape " represents landscape . " portrait " represents portrait . " portrait-primary " represents portrait-primary . " portrait-secondary " represents portrait-secondary . " landscape-primary " represents landscape-primary . " landscape-secondary " represents landscape-secondary . 7. OrientationType enum WebIDL enum OrientationType { " portrait-primary " , " portrait-secondary " , " landscape-primary " , " landscape-secondary " }; The OrientationType enum values are used to represent the screen's current orientation type . " portrait-primary " represents portrait-primary . " portrait-secondary " represents portrait-secondary . " landscape-primary " represents landscape-primary . " landscape-secondary " represents landscape-secondary . 8. Algorithms 8.1 Initializing the ScreenOrientation object When a browsing context context is created, the user agent MUST : Let screenOrientation be context 's associated ScreenOrientation . Initialize screenOrientation 's [[initialType]] internal slot to the screen's current orientation type . Initialize screenOrientation 's [[type]] internal slot to the screen's current orientation type . Initialize screenOrientation 's [[angle]] internal slot to the screen's current orientation angle . 8.2 Rejecting a document's current lock promise When steps require to reject and nullify the current lock promise of Document document with a DOMString exceptionName , the user agent MUST : Assert : [[orientationPendingPromise]] is not null . Let promise be document 's [[orientationPendingPromise]] . Queue a global task on the DOM manipulation task source with document 's relevant global object to reject promise with a new exceptionName DOMException . Set document 's [[orientationPendingPromise]] to null . 8.3 Applying an orientation lock When steps require to apply orientation lock of OrientationLockType? orientation to Document document , the user agent MUST perform the following steps: If document stops being fully active while in parallel , and [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with an " AbortError ". Let topDocument be document 's top-level traversable 's active document . Let descendantDocs be an ordered set consisting of topDocument 's descendant navigables 's active documents , if any, in tree order. For each doc in descendantDocs : If doc is document , continue. If doc 's [[orientationPendingPromise]] is null , continue. Reject and nullify the current lock promise of doc with an " AbortError ". Run the following sub-steps in parallel : If document has stopped being fully active , and if the document 's [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with an " AbortError " and abort these steps. If orientation is null , unlock the screen orientation . Otherwise, attempt to lock the screen orientation to orientation . Depending on platform conventions, change how the viewport is drawn to match orientation . If the attempt fails due to previously-established user preference, or platform limitation, or any other reason: Set the screen's active orientation lock to null . Queue a task on the DOM manipulation task source with document 's relevant global object to: If the document 's [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with a " NotSupportedError ". Abort these steps. Note This can happen if the user has set a preference that prevents web applications from changing the screen orientation, or if the underlying platform, rather than the user agent, does not allow locking the screen orientation to the given orientation . Note that differences in user preferences or platform capabilities could potentially be used for fingerprinting, as they may create detectable patterns in lock failure behavior. Set the screen's active orientation lock to orientation and update the current orientation type and current orientation angle to reflect any changes to the screen orientation . Queue a global task on the DOM manipulation task source with document 's relevant global object to: Let promise be document 's [[orientationPendingPromise]] . Note As the promise needs to resolve after a " change " event is fired, we keep a reference to prevent it from being aborted by an event's handler function calling lock () . Set document 's [[orientationPendingPromise]] to null . Run the screen orientation change steps with topDocument . If promise is not null , resolve promise with undefined . 8.4 Screen orientation change When a user-agent determines that the screen's orientation has changed for a top-level traversable , or the user moves the top-level browsing context to a different screen, then run the screen orientation change steps with the top-level traversable 's active document . The screen orientation change steps for Document document are as follows: If document is not a fully active descendant of a top-level traversable with user attention , abort these steps. Let type and angle be the screen's current orientation type and current orientation angle . Let screenOrientation be document 's relevant global object 's associated ScreenOrientation . If type is equal to screenOrientation 's [[type]] and angle is equal to screenOrientation 's [[angle]] , abort these steps. Queue a global task on the user interaction task source with document 's relevant global object to perform the following steps: Set screenOrientation 's [[angle]] to angle . Set screenOrientation 's [[type]] to type . Fire an event named " change " at screenOrientation . Let descendantDocs be an ordered set consisting of document 's descendant navigables 's active documents , if any, in tree order. For each doc in descendantDocs , run the screen orientation change steps with doc . 8.5 Handling page visibility changes [ HTML ]'s "update the visibility state" algorithm runs the screen orientation change steps . Note Developers need to be aware that documents that are not fully active descendant of a top-level traversable with user attention will not receive orientation change events. However, once a document meets these requirements again, it will receive change events reflecting the current orientation. 8.6 Handling unloading documents Whenever the unloading document cleanup steps run with a document , the user agent MUST run the following steps: If document is not a top-level traversable 's active document , abort these steps. Run the fully unlock the screen orientation steps with document . 8.7 Fully unlocking the orientation The fully unlock the screen orientation steps for Document document are as follows: If document 's [[orientationPendingPromise]] is not null , reject and nullify the current lock promise of document with an " AbortError ". Let topDocument be document 's top-level traversable 's active document . Apply orientation lock null to topDocument . 9. Interaction with Fullscreen API A user agent MUST restrict the use of lock () to simple fullscreen documents as a pre-lock condition . This requirement prevents fingerprinting through differences in user agent behavior regarding orientation locking permissions. [ fullscreen ] When a document exits fullscreen, it also runs the fully unlock the screen orientation steps . [ fullscreen ] 10. Interaction with Web Application Manifest The Web Application Manifest specification allows web applications to set the default screen orientation via the the orientation member. A user agent SHOULD require installed web applications to be presented in the "fullscreen" display mode as a pre-lock condition . 11. Accessibility considerations As users can have their devices mounted in a fixed orientation (e.g. on the arm of a wheelchair), developers that expect users to rotate their device when locking the screen orientation need to be aware of the Web Content Accessibility Guidelines (WCAG) 2.1 's Orientation Success Criterion . The criterion makes it essential that content and functionality is available regardless of the screen orientation . When a particular orientation is essential , web applications must advise the user of the orientation requirements. 12. Privacy and Security Considerations A screen's type and angle are a potential fingerprinting vectors. The following mitigations help protect a user's privacy by not revealing how a device is being held, and also prevent the secondary orientation type and associated angles from being used for fingerprinting purposes. 12.1 Event Delivery Restrictions To protect user privacy, orientation change events are subject to several delivery restrictions: Events only fire on a document that is a fully active descendant of a top-level traversable with user attention . Additional visibility state checks provide defense-in-depth against hidden documents. Events originate from the active document of a top-level traversable and propagate to descendant documents. The requirement for documents to be fully active descendant of a top-level traversable with user attention ensures that orientation events are only delivered to documents in windows that are both visible at the system level and have the user's attention (either through focus or the ability to receive keyboard input). The additional visibility state check provides defense in depth. These restrictions prevent background tabs, hidden windows, and minimized applications from collecting orientation data for fingerprinting purposes. 12.2 Anti-fingerprinting Mitigations To resist fingerprinting, user agents SHOULD implement the following protections, particularly in privacy-conscious contexts such as private browsing modes: For the life of a top-level traversable , behave as if the screen's natural orientation is [[initialType]] . Restrict the possible return values of the type getter to " portrait-primary " or " landscape-primary ". The screen aspect ratio determines which is returned. If the current orientation type matches [[initialType]] , return 0 for the angle getter. Otherwise, return 90 . If the screen orientation changes, only fire the change event when the current orientation type changes from portrait to landscape , or vice versa. 13. Conformance As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative. The key words MAY , MUST , and SHOULD in this document are to be interpreted as described in BCP 14 [ RFC2119 ] [ RFC8174 ] when, and only when, they appear in all capitals, as shown here. A. IDL Index WebIDL partial interface Screen { [ SameObject ] readonly attribute ScreenOrientation orientation ; }; [ Exposed =Window ] interface ScreenOrientation : EventTarget { Promise < undefined > lock ( OrientationLockType orientation ); undefined unlock (); readonly attribute OrientationType type ; readonly attribute unsigned short angle ; attribute EventHandler onchange ; }; enum OrientationLockType { " any " , " natural " , " landscape " , " portrait " , " portrait-primary " , " portrait-secondary " , " landscape-primary " , " landscape-secondary " }; enum OrientationType { " portrait-primary " , " portrait-secondary " , " landscape-primary " , " landscape-secondary " }; B. Index B.1 Terms defined by this specification Active orientation lock §2.2 angle attribute for ScreenOrientation §5. [[angle]] internal slot for ScreenOrientation §5.1 "any" enum value for OrientationLockType §6. Any §2.1 apply orientation lock §8.3 associated ScreenOrientation §4. change §5. common safety checks §5.4 Current orientation angle §2.2 Current orientation type §2.2 Default §2.1 fully unlock the screen orientation steps §8.7 [[initialType]] internal slot for ScreenOrientation §5.1 "landscape" enum value for OrientationLockType §6. Landscape §2.1 landscape-primary enum value for OrientationLockType §6. enum value for OrientationType §7. landscape-secondary enum value for OrientationLockType §6. enum value for OrientationType §7. lock method for ScreenOrientation §5. lock the screen orientation §2. "natural" enum value for OrientationLockType §6. Natural §2.1 onchange attribute for ScreenOrientation §5. orientation attribute for Screen §4. OrientationLockType enum §6. [[orientationPendingPromise]] internal slot for Document §3.1 OrientationType enum §7. "portrait" enum value for OrientationLockType §6. Portrait §2.1 portrait-primary enum value for OrientationLockType §6. enum value for OrientationType §7. portrait-secondary enum value for OrientationLockType §6. enum value for OrientationType §7. pre-lock conditions §5.2 Primary §2.1 reject and nullify the current lock promise §8.2 screen orientation change steps §8.4 screen orientation values lists §2.2 screen orientations §2.1 ScreenOrientation interface §5. Secondary §2.1 type attribute for ScreenOrientation §5. [[type]] internal slot for ScreenOrientation §5.1 unlock method for ScreenOrientation §5. unlock the screen orientation §2. B.2 Terms defined by reference [ APPMANIFEST ] defines the following: display mode installed web application orientation (for manifest ) [ CSSOM-VIEW ] defines the following: Screen interface [ DOM ] defines the following: Document interface documents EventTarget interface Fire an event [ HTML ] defines the following: active document (for navigable ) associated Document browsing context browsing context (for Document ) descendant navigables (for Document ) DOM manipulation task source event handler event handler event type event handler IDL attribute EventHandler fully active (for Document ) fully active descendant of a top-level traversable with user attention (for Document ) in parallel Queue a global task Queue a task relevant global object sandboxed orientation lock browsing context flag top-level browsing context top-level traversable unloading document cleanup steps user interaction task source visibility state (for Document ) Window interface [ INFRA ] defines the following: Assert For each (for list ) ordered set user agent [ WCAG21 ] defines the following: essential Orientation Success Criterion [ WEBIDL ] defines the following: a new promise a promise rejected with AbortError exception DOMException interface DOMString interface exception [Exposed] extended attribute InvalidStateError exception NotAllowedError exception NotSupportedError exception Promise interface reject resolve [SameObject] extended attribute SecurityError exception this throw (for exception ) undefined type unsigned short type C. Acknowledgments Thanks Christophe Dumez, Anne van Kesteren, Chundong Wang, Fuqiao Xue, and Chaals McCathie Nevile for their useful comments. Special thanks to Chris Jones and Jonas Sicking for their contributions to the initial design of this API. Permalink Referenced in: § 2.1 Screen orientation types § 2.2 The current screen orientation type and angle § 5.2 lock() method § 6. OrientationLockType enum § 8.3 Applying an orientation lock § 11. Accessibility considerations Permalink Referenced in: § 2.1 Screen orientation types § 2.2 The current screen orientation type and angle § 8.3 Applying an orientation lock Permalink Referenced in: § 2. Concepts (2) § 2.2 The current screen orientation type and angle (2) § 8.3 Applying an orientation lock § 11. Accessibility considerations Permalink Referenced in: § 6. OrientationLockType enum Permalink exported Referenced in: § 5.3 unlock() method § 10. Interaction with Web Application Manifest Permalink Referenced in: § 2. Concepts § 2.1 Screen orientation types (2) § 2.2 The current screen orientation type and angle § 6. OrientationLockType enum § 12.2 Anti-fingerprinting Mitigations Permalink Referenced in: § 2.1 Screen orientation types (2) (3) § 2.2 The current screen orientation type and angle (2) (3) (4) § 5.6 angle attribute § 6. OrientationLockType enum § 12.2 Anti-fingerprinting Mitigations Permalink Referenced in: § 2.1 Screen orientation types (2) § 2.2 The current screen orientation type and angle § 6. OrientationLockType enum § 12.2 Anti-fingerprinting Mitigations Permalink Referenced in: § 2. Concepts § 2.1 Screen orientation types (2) (3) (4) (5) (6) (7) § 2.2 The current screen orientation type and angle (2) (3) (4) § 6. OrientationLockType enum (2) § 7. OrientationType enum (2) Permalink Referenced in: § 2. Concepts (2) § 2.1 Screen orientation types (2) § 2.2 The current screen orientation type and angle (2) (3) (4) § 6. OrientationLockType enum (2) § 7. OrientationType enum (2) § 12. Privacy and Security Considerations Permalink Referenced in: § 2.1 Screen orientation types § 5.3 unlock() method § 8.3 Applying an orientation lock (2) Permalink Referenced in: § 5.1 Internal Slots § 8.1 Initializing the ScreenOrientation object § 8.3 Applying an orientation lock § 8.4 Screen orientation change § 12. Privacy and Security Considerations Permalink Referenced in: § 5.1 Internal Slots (2) § 7. OrientationType enum § 8.1 Initializing the ScreenOrientation object (2) § 8.3 Applying an orientation lock § 8.4 Screen orientation change § 12. Privacy and Security Considerations § 12.2 Anti-fingerprinting Mitigations (2) Permalink Referenced in: § 2.2 The current screen orientation type and angle § 5.1 Internal Slots § 5.6 angle attribute Permalink Referenced in: § 5.2 lock() method (2) (3) § 5.3 unlock() method § 8.2 Rejecting a document's current lock promise (2) (3) § 8.3 Applying an orientation lock (2) (3) (4) (5) (6) § 8.7 Fully unlocking the orientation Permalink exported Referenced in: § 4. Extensions to the Screen interface Permalink Referenced in: § 8.1 Initializing the ScreenOrientation object § 8.4 Screen orientation change Permalink exported IDL Referenced in: § 4. Extensions to the Screen interface (2) § 5. ScreenOrientation interface § A. IDL Index (2) Permalink exported Referenced in: § 5.2 lock() method § 8.3 Applying an orientation lock § 9. Interaction with Fullscreen API Permalink exported Referenced in: § 5.3 unlock() method (2) Permalink exported Referenced in: § 5.5 type attribute § 12.2 Anti-fingerprinting Mitigations Permalink exported Referenced in: § 5.6 angle attribute (2) § 12.2 Anti-fingerprinting Mitigations Permalink exported Referenced in: § 5. ScreenOrientation interface (2) Permalink Referenced in: § 5.6 angle attribute § 8.1 Initializing the ScreenOrientation object § 8.4 Screen orientation change (2) Permalink Referenced in: § 8.1 Initializing the ScreenOrientation object § 12.2 Anti-fingerprinting Mitigations (2) Permalink Referenced in: § 5.5 type attribute § 8.1 Initializing the ScreenOrientation object § 8.4 Screen orientation change (2) Permalink Referenced in: § Abstract § 5.2 lock() method § 9. Interaction with Fullscreen API § 10. Interaction with Web Application Manifest Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method Permalink Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change § 12.2 Anti-fingerprinting Mitigations Permalink exported IDL Referenced in: § 2. Concepts § 2.2 The current screen orientation type and angle § 5. ScreenOrientation interface § 5.2 lock() method § 6. OrientationLockType enum (2) (3) § 8.3 Applying an orientation lock § A. IDL Index (2) Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 6. OrientationLockType enum § A. IDL Index Permalink exported IDL Referenced in: § 2.2 The current screen orientation type and angle § 5. ScreenOrientation interface § 5.1 Internal Slots § 7. OrientationType enum (2) § A. IDL Index (2) Permalink exported IDL Referenced in: § 7. OrientationType enum § 12.2 Anti-fingerprinting Mitigations § A. IDL Index Permalink exported IDL Referenced in: § 7. OrientationType enum § A. IDL Index Permalink exported IDL Referenced in: § 7. OrientationType enum § 12.2 Anti-fingerprinting Mitigations § A. IDL Index Permalink exported IDL Referenced in: § 7. OrientationType enum § A. IDL Index Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 8.3 Applying an orientation lock (2) (3) (4) § 8.7 Fully unlocking the orientation Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 8.7 Fully unlocking the orientation Permalink exported Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change (2) § 8.5 Handling page visibility changes Permalink exported Referenced in: § 8.6 Handling unloading documents § 9. Interaction with Fullscreen API Permalink Referenced in: § 10. Interaction with Web Application Manifest Permalink Referenced in: § 2.1 Screen orientation types § 10. Interaction with Web Application Manifest Permalink Referenced in: § 10. Interaction with Web Application Manifest Permalink Referenced in: § 4. Extensions to the Screen interface (2) § A. IDL Index Permalink Referenced in: § 3.1 Internal Slots § 5.4 Common Safety Checks § 8.2 Rejecting a document's current lock promise § 8.3 Applying an orientation lock § 8.4 Screen orientation change § 8.7 Fully unlocking the orientation Permalink Referenced in: § 8.5 Handling page visibility changes (2) § 9. Interaction with Fullscreen API § 12.1 Event Delivery Restrictions (2) Permalink Referenced in: § 5. ScreenOrientation interface § A. IDL Index Permalink Referenced in: § 8.4 Screen orientation change Permalink Referenced in: § 8.3 Applying an orientation lock (2) § 8.4 Screen orientation change (2) § 8.6 Handling unloading documents § 8.7 Fully unlocking the orientation § 12.1 Event Delivery Restrictions Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method Permalink Referenced in: § 5.1 Internal Slots § 8.1 Initializing the ScreenOrientation object Permalink Referenced in: § 5.2 lock() method Permalink Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change Permalink Referenced in: § 8.2 Rejecting a document's current lock promise § 8.3 Applying an orientation lock (2) Permalink Referenced in: § 5. ScreenOrientation interface Permalink Referenced in: § 5. ScreenOrientation interface Permalink Referenced in: § 5. ScreenOrientation interface Permalink Referenced in: § 5. ScreenOrientation interface § A. IDL Index Permalink Referenced in: § 8.3 Applying an orientation lock (2) Permalink Referenced in: § 5.4 Common Safety Checks § 8.4 Screen orientation change § 8.5 Handling page visibility changes § 12.1 Event Delivery Restrictions (2) Permalink Referenced in: § 8.3 Applying an orientation lock (2) Permalink Referenced in: § 8.2 Rejecting a document's current lock promise § 8.3 Applying an orientation lock § 8.4 Screen orientation change Permalink Referenced in: § 8.3 Applying an orientation lock Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 8.2 Rejecting a document's current lock promise § 8.3 Applying an orientation lock (2) § 8.4 Screen orientation change (2) Permalink Referenced in: § 5.4 Common Safety Checks Permalink Referenced in: § 8.4 Screen orientation change Permalink Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change (2) § 8.6 Handling unloading documents § 8.7 Fully unlocking the orientation § 12.1 Event Delivery Restrictions § 12.2 Anti-fingerprinting Mitigations Permalink Referenced in: § 8.6 Handling unloading documents Permalink Referenced in: § 8.4 Screen orientation change Permalink Referenced in: § 5.4 Common Safety Checks § 12.1 Event Delivery Restrictions Permalink Referenced in: § 4. Extensions to the Screen interface Permalink Referenced in: § 8.2 Rejecting a document's current lock promise Permalink Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change Permalink Referenced in: § 8.3 Applying an orientation lock § 8.4 Screen orientation change Permalink Referenced in: § 5.2 lock() method (2) (3) (4) § 5.3 unlock() method (2) (3) § 8.1 Initializing the ScreenOrientation object § 8.2 Rejecting a document's current lock promise § 8.3 Applying an orientation lock Permalink Referenced in: § 11. Accessibility considerations (2) Permalink Referenced in: § 11. Accessibility considerations Permalink Referenced in: § 5.2 lock() method Permalink Referenced in: § 5.2 lock() method (2) (3) Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 8.3 Applying an orientation lock (2) (3) § 8.7 Fully unlocking the orientation Permalink Referenced in: § 5.2 lock() method (2) § 5.4 Common Safety Checks (2) (3) § 8.2 Rejecting a document's current lock promise Permalink Referenced in: § 8.2 Rejecting a document's current lock promise Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method Permalink Referenced in: § 5. ScreenOrientation interface § A. IDL Index Permalink Referenced in: § 5.4 Common Safety Checks Permalink Referenced in: § 5.2 lock() method Permalink Referenced in: § 5.2 lock() method § 8.3 Applying an orientation lock Permalink Referenced in: § 3.1 Internal Slots (2) § 5. ScreenOrientation interface § A. IDL Index Permalink Referenced in: § 8.2 Rejecting a document's current lock promise Permalink Referenced in: § 8.3 Applying an orientation lock Permalink Referenced in: § 4. Extensions to the Screen interface § A. IDL Index Permalink Referenced in: § 5.4 Common Safety Checks (2) Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 5.5 type attribute § 5.6 angle attribute Permalink Referenced in: § 5.2 lock() method § 5.3 unlock() method § 5.4 Common Safety Checks (2) (3) Permalink Referenced in: § 5. ScreenOrientation interface (2) § A. IDL Index (2) Permalink Referenced in: § 5. ScreenOrientation interface § 5.1 Internal Slots § A. IDL Index D. References D.1 Normative references [appmanifest] Web Application Manifest . Marcos Caceres; Daniel Murphy; Christian Liebel. W3C. 23 July 2026. W3C Working Draft. URL: https://www.w3.org/TR/appmanifest/ [cssom-view] CSSOM View Module . Simon Fraser; Emilio Cobos Álvarez. W3C. 16 September 2025. W3C Working Draft. URL: https://www.w3.org/TR/cssom-view-1/ [dom] DOM Standard . Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/ [fullscreen] Fullscreen API Standard . Philip Jägenstedt. WHATWG. Living Standard. URL: https://fullscreen.spec.whatwg.org/ [HTML] HTML Standard . Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/ [infra] Infra Standard . Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/ [RFC2119] Key words for use in RFCs to Indicate Requirement Levels . S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc2119/ [RFC8174] Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words . B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc8174/ [WCAG21] Web Content Accessibility Guidelines (WCAG) 2.1 . Michael Cooper; Andrew Kirkpatrick; Joshue O'Connor; Alastair Campbell. W3C. 6 May 2025. W3C Recommendation. URL: https://www.w3.org/TR/WCAG21/ [WEBIDL] Web IDL Standard . Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: https://webidl.spec.whatwg.org/ ↑