게시일: 2025년 2월 7일
2024년 4월 이 사이트의 게시물에서 Popover API가 새로운 기준으로 제공된다고 발표했습니다. 하지만 잘못된 정보였으며 2025년 1월 27일부터 팝오버가 기준에 포함됩니다. 이 게시물에서는 잘못된 결과가 나온 이유와 이러한 실수가 다시 발생할 가능성을 줄이기 위해 취해진 조치를 설명합니다.
Popover API란 무엇인가요?
Popover API는 웹 애플리케이션에 사용되는 다양한 유형의 팝오버를 만드는 기본 제공 방법을 제공합니다. 이전에는 JavaScript를 사용하고 액세스 가능한 방식으로 구현하는 데 각별히 주의해야 했습니다. API는 이 모든 것을 브라우저로 가져오며 간단한 팝오버는 HTML에서 선언적으로 만들 수 있습니다.
<button popovertarget="my-popover">Open Popover</button>
<div id="my-popover" popover>
<p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>
2024년 4월에 기준이 적용되지 않은 이유는 무엇인가요?
Firefox에서 2024년 4월에 팝오버 구현을 출시했을 때는 iOS 및 iPadOS에 심각한 문제가 있다는 사실을 아직 발견하지 못했습니다. 이러한 모바일 브라우저에서는 팝오버 외부를 클릭해도 팝오버가 닫히지 않았습니다. 이를 조용히 닫기라고 합니다. 이는 대부분의 개발자가 팝오버를 기꺼이 사용하지 못하게 하는 문제입니다. 즉, 4월에 기준으로 포함되어서는 안 되었으며 Safari 18.3에서 버그가 수정될 때까지 기다려야 했습니다.
잘못된 정보인 이유가 무엇인가요?
기준점은 web-features 작업을 사용하여 지형지물이 기준점 내에 있는지 또는 기준점 밖에 있는지 계산합니다. 팝오버 파일과 같이 프로젝트의 개별 기능 파일을 살펴보면 Mozilla 브라우저 호환성 데이터의 개별 기능이 표시됩니다. 일반적으로 하나의 웹 지형지물에는 이러한 포함 항목이 여러 개 포함됩니다. 이는 웹의 기능이 단일 속성이나 메서드가 아니라 작동하려면 여러 구성요소가 필요하기 때문입니다. 기능이 전체 사양이 되는 것도 아닙니다. 예를 들어 CSS 사양에는 구현된 적이 없거나 특정 컨텍스트에서만 사용되는 하위 기능이 포함되는 경우가 많습니다. 웹 기능 작업은 기존 가용성 데이터와 사람의 입력을 조합하여 웹 플랫폼 기능을 구성하는 요소와 부분 구현이 기준에서 제외될 만큼 심각한지 여부를 파악합니다.
2월에는 웹 기능 작업이 완료되지 않았습니다. 따라서 기준선이 작동하는 방식을 보여주기 위해 필요한 모든 데이터 없이 기준선 2024에 포함될 핵심 기능을 파악하려고 했습니다. 문서상 또는 문제 발견 시 9월까지 업데이트되지 않은 브라우저 호환성 데이터에서는 팝오버가 포함된 것으로 보였습니다. 하지만 iOS의 버그가 심각하여 팝오버를 사용할 수 없을 정도였기 때문에 준비되지 않았습니다.
모바일용 테스트 인프라도 부족했습니다. 웹 플랫폼 테스트 프로젝트를 사용하면 웹 플랫폼 기능이 모든 브라우저에서 작동하는지 테스트할 수 있습니다. 이 밝은 색상 닫기 문제가 데스크톱 브라우저에서 발생했다면 테스트가 실패했을 것입니다. 하지만 모바일에서는 그렇지 않았습니다.
향후 이러한 문제가 발생하지 않도록 하려면 어떻게 해야 하나요?
이미 데이터를 훨씬 더 효과적으로 활용하고 있습니다. 웹 지형지물 데이터가 거의 완성되었으므로 기준선을 선언하는 지형지물에 대해 더 높은 수준의 확신을 가질 수 있습니다.
특히 이 문제의 경우 iOS의 휴대기기에서만 발생하는 문제를 파악하는 것이 문제의 일부였습니다. 향후 모바일에서 상호 운용성 문제를 더 쉽게 식별할 수 있도록 몇 가지 사항이 진행 중입니다. 웹 플랫폼 테스트에서 모바일 테스트를 개선하기 위한 작업이 진행 중이며, 따라서 데스크톱과 별도로 모바일 브라우저에 문제가 있는 경우 이를 더 잘 식별할 수 있습니다. 올해 webstatus.dev 대시보드에도 이 데이터를 노출할 예정입니다. 향후 이와 같은 문제가 발생하면 기준에 기능을 포함하기 전에 문제가 발생했음을 더 신속하게 파악할 수 있어야 합니다.
전체 웹 플랫폼을 기능 집합으로 매핑하는 것이 쉽지 않다는 것은 항상 알고 있었습니다. 하지만 부분 구현, 버그, 실제로 기능을 구성하는 요소에 관한 토론은 매우 중요합니다. 이를 통해 개발자에게 정말 중요한 사항을 파악하고 Interop 2025와 같은 작업을 계획할 때 더 나은 신호를 얻을 수 있습니다.