화면 방향

W3C 작업 초안

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2026/WD-screen-orientation-20260806/
최신 발행 버전:
https://www.w3.org/TR/screen-orientation/
최신 편집자 초안:
https://w3c.github.io/screen-orientation/
이력:
https://www.w3.org/standards/history/screen-orientation/
커밋 이력
테스트 스위트:
https://wpt.live/screen-orientation/
편집자:
Marcos Cáceres (Apple Inc.)
Léonie Watson (TetraLogical)
이전 편집자:
Mounir Lamouri (Google Inc.)
Johanna Herman (초청 전문가)
피드백:
GitHub w3c/screen-orientation (풀 리퀘스트, 새 이슈, 열린 이슈)
브라우저 지원:
caniuse.com

요약

Screen Orientation 명세는 기기의 화면 방향의 유형과 각도를 표준화하고, 이를 잠그고 잠금 해제하는 수단을 제공합니다. 이 명세에서 정의된 API는 기기의 화면 방향의 현재 유형과 각도를 노출하고, 변경될 때 이벤트를 발생시킵니다. 이를 통해 웹 애플리케이션은 CSS와 함께 작동하여 여러 화면 방향에 맞게 사용자 경험을 프로그래밍 방식으로 적응시킬 수 있습니다. 이 API는 사용자가 기기를 물리적으로 회전시키지만 화면 방향 자체는 변경되지 않아야 하는 컴퓨터 게임과 같은 애플리케이션에 특히 유용합니다. API는 화면 방향 잠금을 특정 사전 잠금 조건이 충족된 경우에만 허용하도록 제한합니다.

이 문서의 상태

이 절은 이 문서가 발행된 시점의 상태를 설명합니다. 현재의 W3C 발행물 목록과 이 기술 보고서의 최신 개정본은 W3C 표준 및 초안 색인에서 찾을 수 있습니다.

이 문서는 진행 중인 작업입니다.

이 문서는 웹 애플리케이션 워킹 그룹에서 권고 절차를 따라 워킹 드래프트로 발행하였습니다.

워킹 드래프트로 발행되었다고 해서 W3C 및 그 회원들의 승인을 의미하지는 않습니다.

이 문서는 초안이며 언제든지 다른 문서로 업데이트, 대체 또는 폐기될 수 있습니다. 진행 중인 작업 외의 목적으로 이 문서를 인용하는 것은 적절하지 않습니다.

이 문서는 W3C 특허 정책에 따라 운영되는 그룹에서 작성되었습니다. W3C는 그룹의 결과물과 관련하여 공개된 특허 목록을 유지합니다. 해당 페이지에는 특허 공개 방법에 대한 안내도 포함되어 있습니다. 특정 특허가 필수 청구항을 포함한다고 믿는 사람이 실제로 그 특허를 알고 있다면 W3C 특허 정책 6항에 따라 정보를 공개해야 합니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

1. 사용 예

이 절은 비규범적입니다.

이 예제에서 "Lock" 버튼을 선택하면 전체 화면으로 전환하도록 요청한 다음 화면을 반대 방향으로 고정합니다. "Unlock" 버튼을 선택하면 화면 잠금이 해제됩니다.

예제 1: 특정 방향으로 고정 및 잠금 해제
<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">
  ...로 고정
</button>
<button onclick="screen.orientation.unlock()">
  잠금 해제
</button>

2. 개념

화면 방향을 고정한다는 것은 OrientationLockType orientation(으)로 화면을 고정한다는 의미이다. 화면은 오직 사용자가 특정 화면 방향으로만 회전할 수 있으며, 다른 방향으로는 회전이 제한될 수 있다. 화면이 회전될 수 있는 가능한 방향은 사용자 에이전트, 사용자 설정, 운영체제의 관례 또는 화면 자체에 의해 결정된다. 예를 들어, 가로 방향으로 고정하면, 사용자는 화면을 가로-주 방향 또는 시스템이 허용한다면 가로-보조 방향으로 회전할 수 있지만, 세로-보조 방향으로는 변경되지 않는다.

화면 방향을 해제한다는 것은 최종 사용자가 시스템이 허용하는 모든 화면 방향으로 자유롭게 화면을 회전할 수 있음을 의미한다.

2.1 화면 방향 유형

화면은 다음의 화면 방향 중 하나에 있거나, 고정될 수 있습니다:

모두
사용자는 기기의 운영 체제 또는 최종 사용자가 허용하는 모든 방향으로 화면을 회전할 수 있다.
기본값 (잠금 해제됨)
화면이 잠금 해제된 경우의 기기 기본 동작 (즉, 활성 방향 잠금null인 경우)이다. 이 방향은 기기의 운영 체제나 사용자 에이전트에 의해 결정되거나, 최종 사용자가 제어하거나, 설치된 웹 애플리케이션에 의해 설정될 수도 있다. 예를 들어, 화면 방향의 잠금이 해제된 상태에서 사용자가 기기를 회전하면 일부 기기는 방향 변경을 portrait-primary, landscape-primarylandscape-secondary로 제한하지만, portrait-secondary로는 제한하지 않는다.
가로 방향
화면의 가로세로비에서 너비가 높이보다 크다.
자연 방향
사용자 에이전트, 사용자, 운영 체제 또는 화면 자체에 의해 결정되며 방향 각도를 측정하는 기준이 되는 기기 디스플레이의 기준 방향이다. 예를 들어, 컴퓨터 모니터의 기준 방향은 일반적으로 landscape-primary인 반면, 휴대전화의 기준 방향은 일반적으로 portrait-primary이다.
참고

사용자 에이전트가 자연 방향을 결정하는 방법은 구현에 따라 정의되며 플랫폼마다 다르다. 일부 사용자 에이전트는 기기 유형별로 고정된 방향을 사용하고(예: 휴대전화에는 portrait-primary, 태블릿, 데스크톱 및 TV에는 landscape-primary), 다른 사용자 에이전트는 화면의 물리적 크기와 기본 회전으로부터 이를 도출한다. 정사각형 화면이나 폴더블 화면처럼 뚜렷한 직립 방향이 없는 기기에서는 자연 방향이 사용자 에이전트마다 다를 수 있다.

세로 방향
화면의 가로세로비에서 높이가 너비보다 크다.
주 방향
세로 방향 또는 가로 방향에 대한 기기 화면의 자연 방향이다.
보조 방향
세로 방향 또는 가로 방향에 대한 기기 화면의 방향과 반대되는 방향이다.

2.2 현재 화면 방향 유형 및 각도

출력 장치의 화면에는 다음과 같은 개념들이 연관되어 있습니다:

활성화된 방향 잠금
화면이 고정화면 방향OrientationLockType으로 나타냅니다. 잠금 해제된 경우 null입니다.
현재 방향 각도
화면이 자연스러운 방향으로부터 반시계 방향으로 얼마나 회전되었는지를 도(degree) 단위로 나타냅니다. 이 값은 화면 방향 값 목록에서 도출됩니다.
현재 방향 유형
화면의 화면 방향OrientationType으로 나타냅니다.

아래의 화면 방향 값 목록은 서로 다른 자연 방향을 가진 화면에서 각 화면 방향 유형과 연관된 각도를 표준화한다:

자연 세로 방향인 화면의 경우:
자연 가로 방향인 화면의 경우:

3. Document 인터페이스의 확장

3.1 내부 슬롯

Document 인터페이스는 다음과 같은 내부 슬롯으로 확장됩니다:

내부 슬롯 설명
[[orientationPendingPromise]] null 또는 Promise 중 하나입니다. Promise가 할당된 경우, 해당 프로미스는 화면 방향 고정 요청을 나타냅니다.

4. Screen 인터페이스의 확장

WebIDLpartial interface Screen {
  [SameObject] readonly attribute ScreenOrientation orientation;
};

Window 객체는 연관된 ScreenOrientation을 가진다. 이는 Screenorientation 객체(즉, ScreenOrientation 인스턴스, window.screen.orientation)이다.

5. ScreenOrientation 인터페이스

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 내부 슬롯

내부 슬롯 설명
[[angle]] 화면의 마지막으로 알려진 현재 방향 각도를 도(degree) 단위의 unsigned short 값으로 나타냅니다. 이 값은 화면 방향 값 목록에서 도출됩니다.
[[initialType]] 현재 방향 유형탐색 컨텍스트가 생성될 때의 값으로 나타냅니다.
[[type]] 화면의 마지막으로 알려진 현재 방향 유형OrientationType 열거형 값으로 나타냅니다.

5.2 lock() 메서드

사전 잠금 조건은 화면 방향 잠금을 허용하기 전에 사용자 에이전트MAY 부과할 수 있는 선택적 요구 사항이다. 일반적인 사전 잠금 조건에는 문서가 전체 화면 모드여야 하거나 설치된 웹 애플리케이션의 일부여야 한다는 요구가 포함된다. 구체적인 예시는 10. 웹 애플리케이션 매니페스트와의 상호작용9. Fullscreen API와의 상호작용을 참고하라.

lock() 메서드가 OrientationLockType orientation과 함께 호출되면, 사용자 에이전트는 다음 단계를 MUST 수행해야 한다.

  1. documentthis관련 전역 객체연관된 Document로 둔다.
  2. 공통 안전 점검document로 실행한다. 예외발생하면, 해당 예외로 거부된 프라미스를 반환하고 이 단계들을 중단한다.
  3. 사용자 에이전트가 화면 방향을 orientation으로 잠그는 것을 지원하지 않으면, "NotSupportedError" DOMException으로 거부된 프라미스를 반환하고 이 단계들을 중단한다.
  4. 사용자 에이전트document와 그에 연관된 탐색 문맥사전 잠금 조건을 충족해야만 화면 방향을 잠글 수 있도록 요구하며, 그 조건이 충족되지 않은 경우, "NotAllowedError" DOMException으로 거부된 프라미스를 반환하고 이 단계들을 중단한다.
  5. document[[orientationPendingPromise]]null이 아니라면, 현재 잠금 프라미스를 거부하고 무효화한다 document의 "AbortError"로.
  6. document[[orientationPendingPromise]]새 프라미스로 설정한다.
  7. 방향 잠금을 적용한다 orientationdocument에.
  8. document[[orientationPendingPromise]]를 반환한다.

5.3 unlock() 메서드

unlock() 메서드가 호출되면, user agentMUST 다음 단계를 수행해야 한다:

  1. documentthisrelevant global object연관된 Document로 둔다.
  2. 공통 안전성 검사document에 대해 실행한다. 만약 예외throw되면, 해당 예외를 다시 throw하고 이 단계를 중단한다.
  3. screen의 활성화된 방향 잠금null이면, undefined를 반환한다.
  4. document[[orientationPendingPromise]]null이 아니면, document현재 잠금 promise 거부 및 null 처리를 "AbortError"로 실행한다.
  5. 방향 잠금 적용 nulldocument에 적용한다.
Note: Why does unlock() not return a promise?

unlock()는 프로미스를 반환하지 않는다. 그 이유는 이것이 기본 화면 방향으로 고정하는 것과 동등한데, 이 기본 방향이 user agent에 의해 알 수 있을 수도 있고 아닐 수도 있기 때문이다. 따라서, user agent는 새로운 방향이 무엇이 될지, 심지어 방향이 바뀔지조차 예측할 수 없다.

5.4 공통 안전 검사

공통 안전성 검사Document document에 대해 다음 단계로 이루어진다:

  1. 만약 document사용자 주의가 있는 최상위 트래버서블의 완전히 활성화된 자손이 아니라면, throw "InvalidStateError" DOMException.
  2. 만약 document샌드박스된 화면 방향 잠금 탐색 문맥 플래그가 설정되어 있다면, throw "SecurityError" DOMException.
  3. 만약 document가시성 상태가 "hidden"이면, throw "SecurityError" DOMException.

5.5 type 속성

가져올 때, type 속성은 this[[type]]를 반환한다.

5.6 angle 속성

가져올 때, angle 속성은 this[[angle]]를 반환한다.

Note: angle 값이 의미하는 것은?

5.7 onchange 이벤트 핸들러 속성

onchange 속성은 이벤트 핸들러 IDL 속성이며, onchange 이벤트 핸들러를 위한 것이다. 이 때 이벤트 핸들러 이벤트 타입change이다.

6. OrientationLockType 열거형

WebIDLenum OrientationLockType {
  "any",
  "natural",
  "landscape",
  "portrait",
  "portrait-primary",
  "portrait-secondary",
  "landscape-primary",
  "landscape-secondary"
};

OrientationLockType 열거형은 화면이 잠길 수 있는 잠재적인 화면 방향들을 나타냅니다(lock될 수 있는 방향).

Note: 방향 지원

7. OrientationType 열거형

WebIDLenum OrientationType {
  "portrait-primary",
  "portrait-secondary",
  "landscape-primary",
  "landscape-secondary"
};

OrientationType 열거형 값들은 화면의 현재 방향 타입을 나타내는 데 사용됩니다.

8. 알고리즘

8.1 ScreenOrientation 객체 초기화

browsing context context가 생성될 때, user agentMUST 다음을 수행해야 한다:

  1. screenOrientationcontext연관된 ScreenOrientation로 둡니다.
  2. screenOrientation[[initialType]] 내부 슬롯을 화면의 현재 방향 타입으로 초기화합니다.
  3. screenOrientation[[type]] 내부 슬롯을 화면의 현재 방향 타입으로 초기화합니다.
  4. screenOrientation[[angle]] 내부 슬롯을 화면의 현재 방향 각도로 초기화합니다.

8.2 문서의 현재 잠금 프라미스 거부

단계에서 현재 잠금 promise를 거부 및 null 처리해야 할 때, Document documentDOMString exceptionName이 주어지면, user agentMUST 다음을 수행해야 한다:

  1. Assert: [[orientationPendingPromise]]null이 아님을 보장한다.
  2. promisedocument[[orientationPendingPromise]]로 둔다.
  3. 글로벌 태스크를 큐에 추가한다. DOM 조작 태스크 소스에 대해, documentrelevant global object를 사용하여 reject promise (새로운 exceptionName DOMException와 함께) 한다.
  4. document[[orientationPendingPromise]]null로 설정한다.

8.3 화면 방향 잠금 적용

단계에서 방향 잠금을 적용해야 할 때, OrientationLockType? orientationDocument document에 적용하려면, user agentMUST 다음 단계를 수행해야 한다:

  1. 만약 document완전히 활성화 상태가 아니게 되고, 병렬로 동작할 때, [[orientationPendingPromise]]null이 아니면, 현재 잠금 프라미스를 거부하고 무효화한다 document 에 대하여 "AbortError"와 함께.
  2. topDocumentdocument최상위 트래버서블활성 문서로 둔다.
  3. descendantDocs순서 있는 집합으로, topDocument자식 navigable활성 문서들을, 있다면, 트리 순서로 포함한다.
  4. 각각 docdescendantDocs에서 순회:
    1. docdocument라면 continue.
    2. doc[[orientationPendingPromise]]null이면 continue.
    3. 현재 잠금 프라미스를 거부하고 무효화한다 doc에 대해 "AbortError"와 함께.
  5. 다음 하위 단계를 병렬로 실행한다:
    1. document완전히 활성화 상태가 아니게 되고, document[[orientationPendingPromise]]null이 아니라면, 현재 잠금 프라미스를 거부하고 무효화한다 document에 "AbortError"와 함께, 이 단계들을 중단한다.
    2. orientationnull이면, 화면 방향 잠금을 해제한다.
    3. 그 외의 경우, 화면 방향을 orientation으로 잠그기를 시도한다. 플랫폼의 규칙에 따라, orientation에 맞게 뷰포트 표시 방식을 변경한다.
    4. 만약 기존에 설정된 사용자 환경설정, 플랫폼 제한, 기타 이유로 인해 잠금 시도가 실패하면:
      1. 화면의 활성 화면 방향 잠금null로 설정한다.
      2. 작업 큐에 추가DOM 조작 작업 소스에서 document관련 전역 객체와 함께 처리한다:
        1. document[[orientationPendingPromise]]null이 아니면, 현재 잠금 프라미스를 거부하고 무효화한다 document에 대해 "NotSupportedError"와 함께.
        2. 이 단계들을 중단한다.
      Note

      사용자가 웹 애플리케이션이 화면 방향을 변경하는 것을 방지하는 환경설정을 적용했거나, 사용자 에이전트가 아닌 기본 플랫폼에서 해당 orientation으로의 화면 방향 잠금을 허용하지 않는 경우에 이런 일이 발생할 수 있습니다. 사용자 환경설정 혹은 플랫폼 능력치의 차이는 잠금 실패 행동의 패턴을 통해 지문 채집에 악용될 수 있으니 주의가 필요합니다.

    5. 화면의 활성 화면 방향 잠금orientation으로 설정하고, 현재 방향 유형현재 방향 각도화면 방향의 변경 상태를 반영하여 갱신한다.
  6. 전역 작업을 큐에 추가DOM 조작 작업 소스에서 document관련 전역 객체와 함께 처리한다:
    1. promisedocument[[orientationPendingPromise]] 값을 대입한다.
      Note
    2. document[[orientationPendingPromise]]null로 설정한다.
    3. 화면 방향 변경 단계topDocument로 실행한다.
    4. promisenull이 아니면, resolve promiseundefined로 해결한다.

8.4 화면 방향 변경

사용자 에이전트가 최상위 트래버서블의 화면 방향이 변경되었음을 감지하거나, 사용자가 최상위 브라우징 컨텍스트를 다른 화면으로 이동시키는 경우, 해당 화면 방향 변경 단계최상위 트래버서블활성 문서와 함께 실행한다.

화면 방향 변경 단계Document document에 대해 다음과 같다:

  1. document사용자 주의가 있는 최상위 트래버서블의 완전히 활성화된 자손이 아니라면, 이 단계를 중단한다.
  2. typeangle을 화면의 현재 방향 유형현재 방향 각도로 둔다.
  3. screenOrientationdocument관련 전역 객체연관된 ScreenOrientation로 둔다.
  4. typescreenOrientation[[type]]와 같고, anglescreenOrientation[[angle]]와 같다면, 이 단계들을 중단한다.
  5. 전역 작업을 큐에 추가한다사용자 상호작용 작업 소스에서 document관련 전역 객체와 함께 다음 단계를 실행한다:
    1. screenOrientation[[angle]]angle로 설정한다.
    2. screenOrientation[[type]]type로 설정한다.
    3. "change"라는 이벤트를 발생시킨다 screenOrientation에.
  6. descendantDocs순서 있는 집합으로, document자식 navigable활성 문서들을, 있다면, 트리 순서로 포함한다.
  7. 각각 docdescendantDocs에서, 화면 방향 변경 단계doc에 대해 실행한다.

8.5 페이지 가시성 변경 처리

[HTML]의 "visibility state 업데이트" 알고리즘은 화면 방향 변경 단계를 실행한다.

Note

8.6 언로드되는 문서 처리

unloading document cleanup stepsdocument에 대해 실행될 때마다, user agent는 MUST 다음 단계를 실행해야 한다:

  1. document최상위 트래버서블활성 문서가 아니라면, 이 단계들을 중단한다.
  2. document와 함께 화면 방향 완전 잠금 해제 단계를 실행한다.

8.7 화면 방향 완전 잠금 해제

화면 방향 완전 해제 단계Document document에 대해 다음과 같다:

  1. document[[orientationPendingPromise]]null이 아니라면, 현재 잠금 프라미스를 거부하고 무효화한다 document에 대해 "AbortError"와 함께.
  2. topDocumentdocument최상위 트래버서블활성 문서로 둔다.
  3. 방향 잠금 적용 nulltopDocument에 실행한다.

9. 전체 화면 API와의 상호작용

사용자 에이전트는 MUST lock()의 사용을 단순 전체 화면 문서로 제한해야 하며, 이는 사전 잠금 조건이다. 이 요구 사항은 화면 방향 잠금 권한에 관한 사용자 에이전트의 동작 차이로 인한 지문 채집을 방지하기 위한 것이다. [fullscreen]

문서가 전체 화면을 종료할 때, 화면 방향 완전 잠금 해제 단계도 실행된다. [fullscreen]

10. 웹 애플리케이션 매니페스트와의 상호작용

Web Application Manifest 명세는 웹 애플리케이션이 기본 화면 방향orientation 멤버를 통해 설정할 수 있도록 허용한다.

사용자 에이전트는 설치된 웹 애플리케이션이 "fullscreen" 표시 모드로 표시되도록 잠금 전 조건으로 요구하는 것이 좋다.

11. 접근성 고려사항

사용자가 기기를 고정된 방향으로 장착할 수 있기 때문에(예: 휠체어 팔대에 장착), 개발자가 화면 방향을 잠글 때 사용자가 기기를 회전시키기를 기대하는 경우에는 Web Content Accessibility Guidelines (WCAG) 2.1Orientation Success Criterion을 인지해야 합니다. 이 기준은 콘텐츠와 기능이 화면 방향에 관계없이 이용 가능해야 한다는 것을 필수적으로 규정합니다. 특정 방향이 필수적인 경우, 웹 애플리케이션은 사용자가 필요한 방향 요구사항을 고지해야 합니다.

12. 개인정보 및 보안 고려사항

화면의 typeangle은 잠재적인 지문 채집 벡터입니다. 다음과 같은 완화 방안은 사용자의 프라이버시를 보호하기 위해 기기가 어떻게 들려있는지 노출하지 않으며, secondary 방향 유형 및 관련 각도가 지문 채집에 사용되는 것을 방지합니다.

12.1 이벤트 전달 제한

사용자 프라이버시를 보호하기 위해, 방향 변경 이벤트는 여러 전달 제한을 받습니다:

문서사용자 주의가 있는 최상위 트래버서블의 완전히 활성화된 자손이어야 한다는 요구 사항은 방향 이벤트가 시스템 수준에서 보기 가능하며 사용자의 주의(포커스 또는 키 입력 등)를 받는 윈도우에만 전달되도록 보장합니다. 추가적인 가시성 상태 검사는 심층 방어를 제공합니다. 이러한 제한 덕분에 백그라운드 탭, 숨겨진 창, 최소화된 애플리케이션이 지문 채집 목적의 방향 데이터를 수집하는 것을 방지합니다.

12.2 지문 채집 방지 대책

지문 채집을 막기 위해, 사용자 에이전트는 특히 프라이버시에 민감한 환경(예: 비공개 브라우징 모드)에서 다음 보호 기능을 SHOULD 구현해야 합니다:

  1. 최상위 트래버서블이 존재하는 동안, 화면의 natural 방향이 [[initialType]]인 것처럼 동작합니다.
  2. type getter의 반환값을 "portrait-primary" 또는 "landscape-primary"로 제한합니다. 화면 비율에 따라 둘 중 무엇이 반환될지 결정합니다.
  3. 현재 방향 유형[[initialType]]과 같으면, angle getter를 위해 0을 반환하고, 그렇지 않으면 90을 반환합니다.
  4. 화면 방향이 변경되면, change 이벤트는 현재 방향 유형portrait에서 landscape로, 또는 그 반대로 변경될 때만 발생합니다.

13. 적합성

비규범적인 것으로 표시된 섹션뿐만 아니라, 이 명세서의 모든 작성 가이드라인, 다이어그램, 예시, 그리고 주석은 모두 비규범적입니다. 그 외의 모든 내용은 규범적입니다.

이 문서에서 MAY, MUST, SHOULD와 같은 핵심 용어는 BCP 14 [RFC2119] [RFC8174] 에서 설명된 대로, 오직 여기에 나온 것처럼 모두 대문자로 표기될 때에만 해당 의미로 해석되어야 합니다.

A. IDL 색인

WebIDLpartial 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. 색인

B.1 이 명세서에서 정의한 용어

B.2 참조로 정의된 용어

C. 감사의 말

유용한 의견을 주신 Christophe Dumez, Anne van Kesteren, Chundong Wang, Fuqiao Xue, 및 Chaals McCathie Nevile에게 감사드립니다.

이 API 초기 설계에 기여한 Chris Jones와 Jonas Sicking에게 특별히 감사드립니다.

D. 참고 문헌

D.1 규범적 참고 문헌

[appmanifest]
웹 애플리케이션 매니페스트. Marcos Caceres; Daniel Murphy; Christian Liebel. W3C. 2026년 7월 23일. W3C 작업 초안. URL: https://www.w3.org/TR/appmanifest/
[cssom-view]
CSSOM 뷰 모듈. Simon Fraser; Emilio Cobos Álvarez. W3C. 2025년 9월 16일. W3C 작업 초안. URL: https://www.w3.org/TR/cssom-view-1/
[dom]
DOM 표준. Anne van Kesteren. WHATWG. 현행 표준. URL: https://dom.spec.whatwg.org/
[fullscreen]
전체 화면 API 표준. Philip Jägenstedt. WHATWG. 현행 표준. URL: https://fullscreen.spec.whatwg.org/
[HTML]
HTML 표준. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. 현행 표준. URL: https://html.spec.whatwg.org/multipage/
[infra]
Infra 표준. Anne van Kesteren; Domenic Denicola. WHATWG. 현행 표준. URL: https://infra.spec.whatwg.org/
[RFC2119]
요구사항 수준을 나타내기 위해 RFC에서 사용하는 핵심 단어. S. Bradner. IETF. 1997년 3월. 최선의 현행 관행. URL: https://www.rfc-editor.org/info/rfc2119/
[RFC8174]
RFC 2119 핵심 단어의 대문자와 소문자 간 모호성. B. Leiba. IETF. 2017년 5월. 최선의 현행 관행. URL: https://www.rfc-editor.org/info/rfc8174/
[WCAG21]
웹 콘텐츠 접근성 지침(WCAG) 2.1. Michael Cooper; Andrew Kirkpatrick; Joshue O'Connor; Alastair Campbell. W3C. 2025년 5월 6일. W3C 권고안. URL: https://www.w3.org/TR/WCAG21/
[WEBIDL]
Web IDL 표준. Edgar Chen; Timothy Gu. WHATWG. 현행 표준. URL: https://webidl.spec.whatwg.org/