Safari 26.3용 WebKit 기능
Source: WebKit Blog
위 링크에 있는 글의 내용을 번역하려면, 번역하고자 하는 텍스트를 제공해 주세요. 현재는 링크만 포함되어 있어 번역할 본문이 없습니다. 텍스트를 알려 주시면 한국어로 번역해 드리겠습니다.
Safari 26.3 개요
Safari 26.3은 성능과 사용자 경험을 위한 실용적인 개선 사항을 제공한다. 콘텐츠 전달을 최적화하는 새로운 도구를 도입하고, 단일 페이지 애플리케이션에서의 탐색 제어를 향상시키며, 앵커 위치 지정 및 다중 열 레이아웃과 같은 개발자 관련 문제들을 해결한다. 실제 웹사이트에서 테스트한 후 추가적인 세부 조정이 이루어졌다.
visionOS에서 비디오
visionOS의 Safari 26.3에서 전체 화면 비디오 재생은 사용자의 주변을 자동으로 어둡게 하여 콘텐츠에 집중할 수 있게 합니다.
사용자가 Safari에서 비디오를 재생하고(예: YouTube의 Top Dogs 예고편 this trailer 등) 전체 화면으로 전환하면, visionOS 26.3에서 비디오 주변 세계가 어두워집니다.
Zstandard
Safari 26.3은 텍스트 기반 자산(HTML, CSS, JavaScript, JSON, SVG)의 크기를 브라우저에 전송하기 전에 줄여주는 압축 알고리즘인 Zstandard (Zstd)를 지원합니다.
- Zstandard은 빠르게 압축을 해제하여 사용자의 기기에서 작업 부하를 낮춥니다.
- 압축 속도가 빨라 실시간 사용에 적합하지만, Brotli는 일반적으로 빌드 과정에서 미리 압축됩니다.
사용 방법: 서버를 설정하여 응답을 Zstandard로 압축하고 Content‑Encoding: zstd 헤더를 전송합니다. 지원되지 않는 브라우저에 대해서는 서버가 자동으로 다른 압축 방식으로 폴백합니다.
Zstandard 지원은 iOS 26.3, iPadOS 26.3, visionOS 26.3, macOS Tahoe 26.3의 Safari 26.3에서 제공됩니다(이전 macOS 버전에서는 시스템 네트워킹 스택에 지원이 없으므로 사용 불가).
네비게이션 API
Navigation API를 사용해 싱글 페이지 애플리케이션을 구축할 때, 탐색이 중단되면(예: 사용자가 다른 링크를 클릭하거나 뒤로 가기 버튼을 누르거나 코드에서 navigation.navigate()를 다시 호출하는 경우) 진행 중인 작업을 취소해야 할 수 있습니다. Safari 26.3은 탐색이 중단될 때 발생하는 NavigateEvent에 AbortSignal을 추가했으며, 이를 통해 작업을 정리하고 취소하는 표준 방법을 제공합니다:
navigation.addEventListener('navigate', (event) => {
event.intercept({
async handler() {
const response = await fetch('/api/data', {
signal: event.signal // 탐색이 중단되면 자동으로 취소됩니다
});
const data = await response.json();
renderContent(data);
}
});
});
사용자가 fetch가 완료되기 전에 다른 페이지로 이동하면 요청이 자동으로 취소됩니다. 또한 signal의 abort 이벤트를 감지하여 타이머나 애니메이션과 같은 다른 리소스를 정리할 수 있습니다. 이는 메모리 누수와 불필요한 처리를 방지하는 데 도움이 됩니다.
버그 수정 및 기타
새 기능과 함께, Safari 26.3용 WebKit에는 기존 기능에 대한 수많은 개선 사항이 포함되었습니다.
CSS
position-try박스가display: none조상 안에 있을 때 발생하던 스타일 해석 루프를 수정했습니다. (163691885)- 앵커 위치 요소가
display: block과display: none사이를 반복적으로 전환하면서 애니메이션 중 위치가 튀는 현상을 수정했습니다. (163862003) position-area를 사용하는fixed‑positioned 박스가 스크롤 가능한 포함 블록 계산에 잘못 포함되는 문제를 수정했습니다. (164017310)- 루트 인라인 박스에
text-box-trim이 적용될 때text-decoration: underline가 너무 높게 렌더링되는 문제를 수정했습니다. (165945326) widows와text-indent가 다음 열로 흐르는 단락 부분에 잘못된 들여쓰기를 일으키는 다중 열 레이아웃 문제를 수정했습니다. (165945497)- CSS 커서(
move,all-scroll,ew-resize,ns-resize)가 올바르게 표시되지 않던 문제를 수정했습니다. (166731882)
DOM
- 원시 터치 타임스탬프를 사용하도록 전환하여 잘못된 타임스탬프 처리를 수정했습니다. (164262652)
Media
- visionOS 인라인 비디오 컨트롤의 전체 화면 버튼이 인터랙티브함을 시각적으로 표시하지 않던 문제를 수정했습니다; 이제 글로우 효과가 모든
button.circular요소에 적용됩니다. (164259201) - macOS에서
iframe비디오에 대한 Video Viewer 모드를 수정했습니다. (164484608) sourceBuffer콘텐츠가 제거되고 다시 추가될 때 Safari가 라이브 비디오를 재생하지 못하고 탐색이 완료되지 않던 문제를 수정했습니다. (165628836)
Rendering
- HDR JPEG와 게인 맵을 포함한 위치 지정 또는 변형된 요소가 SDR로 잘못 렌더링되는 문제를 수정했습니다. (163517157)
Safe Browsing
- Public Suffix List 항목에 대한 Safe Browsing 쿼리가 공급업체가 전체 유효 TLD를 위험하다고 응답하면 전체 사이트가 위험하다고 표시되는 버그를 수정했습니다. (168155375)
You can also find this information in the Safari release notes.