요약
- 2012년 7월 3일 W3C 작업 초안은 요소의 전체 화면 요청, 문서의 종료, 최상위 표시 계층, 이용자가 지시하는 퇴장을 기술했다.
- W3C는 2014년 해당 문서 작업을 중단하고 WHATWG를 후속 참조 대상으로 제시했다. 현행 표준은 보통 이용자의 일시적 활성화, 삽입 콘텐츠의 명시적 허가, 언제나 작동하는 출구를 요구한다.
웹페이지들이 극장을 운영한다고 상상해 보자. 동영상은 객석을 어둡게 해 달라 하고, 게임은 벽 전체를 달라 한다. 슬라이드는 브라우저 테두리가 주인공을 방해한다고 불평한다. 모두 그럴듯한 요구다. 그런데 건물 관리인이 묻는다. “비상구는 누가 열죠?” 순식간에 화면 배치 규칙이 권한 배분 규칙이 된다.
2012년 7월 3일 공개된 W3C 최초 작업 초안은 간단한 동작을 제시했다. 요소가 requestFullscreen()을 호출해 전체 화면을 요청하고, 문서는 exitFullscreen()으로 종료한다. fullscreenElement는 현재 화면을 차지한 요소를 알려 준다. 초안의 두 메서드는 void를 반환했다. 문서 상태도 작업 초안이었다. 이 날짜를 W3C 권고안의 완성일이나 특정 브라우저의 첫 출시일처럼 쓰면 연표가 엉망이 된다.
화면을 크게 만드는 일만이라면 CSS로도 거대한 사각형을 그릴 수 있다. 초안이 다룬 것은 더 강한 시각적 지위다. 전체 화면 요소는 문서의 스택과, 화면에서 관객에게 가장 가깝게 그려지는 최상위 계층으로 올라간다. 페이지 안의 커다란 상자와 브라우저 창을 가득 채우는 무대는 다르다. 기세 좋은 div에게 모니터 소유권 증서까지 줄 필요는 없다.
요청이 들어왔다고 곧바로 승인되는 것도 아니었다. 초안은 요소가 문서 안에 있는지, 해당 문맥에서 전체 화면을 쓸 수 있는지, 중첩 상태가 충돌하는지 확인했다. 당시의 팝업 허용 조건, 이미 정해진 사용자 선호, 보안 위험, 플랫폼 제약도 거절 사유가 될 수 있었다. 페이지는 신청서를 낸다. 도장을 찍는 쪽은 브라우저다.
퇴장은 설계의 처음부터 들어 있었다. 이용자가 브라우저에 전체 화면을 끝내라고 지시하면 완전히 종료하도록 초안은 규정했다. 어떻게 나가는지 알려 주는 안내도 허용했다. fullscreenchange 이벤트가 있으면 페이지는 상태 변화를 듣고 재생이나 조작 버튼을 조정할 수 있다. 영화관 영사 기사는 관객이 나갔다는 사실을 알아야 한다. 관객을 붙잡아 둘 권리는 없다.
문서의 계보는 2014년 11월 18일 W3C 작업 그룹 노트에서 꺾인다. 노트는 W3C의 이 문서에 관한 작업이 중단됐다고 명시하고 WHATWG Fullscreen 사양을 보라고 안내한다. 중단된 것은 그 문서의 작업이다. 전체 화면 기능이 사라졌다는 뜻도, 2012년 초안이 뒤늦게 W3C 권고안이 됐다는 뜻도 아니다. 사양이 자라는 주소가 바뀌었다.
WHATWG 현행 Living Standard에는 지금의 입장 절차가 더 또렷하다. requestFullscreen()과 exitFullscreen()은 이제 Promise를 돌려준다. 일반적인 요청에는 최근 이용자 행동에서 생긴 일시적 활성화가 필요하고, 이용자가 만든 화면 방향 변경이라는 특정 예외도 있다. 성공한 요청은 그 활성화를 소비한다. 이용자가 재생 버튼을 눌러 극장에 들어가는 것과 페이지가 로딩되자마자 조명을 끄는 것은 같은 사건이 아니다.
현재도 전체 화면 요소는 최상위 계층과 전체 화면 표시 상태로 결정된다. :fullscreen은 화면 꾸미기에 쓰이고, fullscreenchange와 fullscreenerror는 각각 변화와 거절을 알린다. 오늘의 Promise와 권한 정책을 2012년 초안의 문장인 양 소개하면, 서로 다른 시기의 설계를 한 장의 포스터로 뭉개게 된다.
제삼자 콘텐츠가 iframe에 들어 있으면 경계가 더욱 분명해진다. 다른 사업자가 올린 영상이 방문자의 화면을 독단적으로 차지해도 될까? 현행 표준의 fullscreen 권한 정책은 기본 허용 대상을 'self'로 두고, 삽입 콘텐츠에는 iframe의 allowfullscreen이나 allow, 또는 적절한 정책 헤더를 통한 명시적 허가를 요구한다. 극장이 외부 공연팀에 무대를 빌려줄 수는 있다. 건물 열쇠까지 자동으로 넘기지는 않는다.
출구 표시등은 장식이 아니다. 현행 표준은 이용자가 전체 화면 상태를 알 수 있게 하고, 항상 작동하는 종료 수단을 제공하고 알려 줘야 한다고 말한다. 전체 화면 페이지가 브라우저나 운영체제 화면을 흉내 낼 수 있기 때문이다. 브라우저는 필요하다고 판단하면 스스로 세션을 끝낼 수도 있다. 무대의 크기보다 중요한 것은, 무대가 건물 전체인 척하지 못하게 하는 이 규칙이다.
웹은 영화관이자 게임기이고 교실이 될 수 있다. Fullscreen API가 그 변신을 허용한 것은 맞다. 하지만 좋은 극장은 조명을 끈 뒤에도 출구 표지판을 켜 둔다. 브라우저가 전체 화면 상태를 알리고 언제나 작동하는 퇴장을 제공해야 한다는 현재 표준의 요구도 바로 그 운영 규칙이다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





