화면 방향

W3C 작업 초안

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2025/WD-screen-orientation-20251021/
최신 공개 버전:
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.)
이전 편집자:
Mounir Lamouri (Google Inc.)
Johanna Herman (초청 전문가)
피드백:
GitHub w3c/screen-orientation (pull requests, new issue, open issues)
브라우저 지원:
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 화면 방향 유형

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

Any
사용자는 기기의 운영체제나 최종 사용자가 허용하는 모든 방향으로 화면을 회전시킬 수 있습니다.
Default (잠금 해제)
화면이 잠금 해제된 상태(즉, 활성화된 방향 잠금null인 경우)에 대한 기기의 기본 동작입니다. 이 방향은 기기의 운영체제, 사용자 에이전트, 최종 사용자에 의해 제어되거나, 또는 설치된 웹 애플리케이션에 의해 설정될 수 있습니다. 예를 들어, 화면 방향이 잠금 해제되어 있고 사용자가 기기를 회전시키면, 일부 기기는 방향 변환을 세로-주, 가로-주, 가로-보조로 제한할 수 있지만, 세로-보조로는 변경하지 않습니다.
Landscape
화면의 가로 길이가 세로 길이보다 클 때입니다.
Natural
사용자 에이전트, 사용자, 운영체제 또는 화면 자체에 의해 결정되는 기기 디스플레이의 가장 자연스러운 방향입니다. 예를 들어, 사용자의 손에 쥐어 세워서 화면이 사용자를 바라보도록 한 상태입니다. 컴퓨터 모니터는 일반적으로 가로-주 방향이 자연스럽고, 모바일 기기는 일반적으로 세로-주 방향이 자연스럽습니다.
Portrait
화면의 세로 길이가 가로 길이보다 클 때입니다.
Primary
기기 화면의 자연스러운 세로 또는 가로 방향입니다.
Secondary
기기 화면의 세로 또는 가로 방향의 반대입니다.

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 멤버를 통해 설정할 수 있도록 허용한다.

user agent는 SHOULD 설치된 웹 애플리케이션이 "fullscreen" display mode로 표시되도록 요구해야 하며, 이는 사전 잠금 조건 중 하나이다.

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; Kenneth Christiansen; Diego Gonzalez-Zuniga; Daniel Murphy; Christian Liebel. W3C. 2025년 9월 3일. 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. Living Standard. URL: https://dom.spec.whatwg.org/
[fullscreen]
전체화면 API 표준. Philip Jägenstedt. WHATWG. Living Standard. URL: https://fullscreen.spec.whatwg.org/
[HTML]
HTML 표준. 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 표준. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[mediaqueries-5]
미디어 쿼리 레벨 5. Dean Jackson; Florian Rivoal; Tab Atkins Jr.; Daniel Libby. W3C. 2021년 12월 18일. W3C 워킹 드래프트. URL: https://www.w3.org/TR/mediaqueries-5/
[RFC2119]
RFC에서 요구사항 수준을 나타내는 키워드. S. Bradner. IETF. 1997년 3월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
RFC 2119 키워드의 대소문자 모호성. B. Leiba. IETF. 2017년 5월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/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. Living Standard. URL: https://webidl.spec.whatwg.org/