<!--
{
  "documentType" : "article",
  "framework" : "Safari Release Notes",
  "identifier" : "/documentation/Safari-Release-Notes/safari-18_2-release-notes",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari 18.2 Release Notes"
}
-->

# Safari 18.2 Release Notes

Released December 11, 2024 — 18.2 (20620.1.16)

## Overview

Safari 18.2 is available for iOS 18.2, iPadOS 18.2, visionOS 2.2, macOS 15.2, macOS Sonoma, and macOS Ventura.

### Accessibility

#### Resolved Issues

- Fixed `text-transform: full-size-kana` to not affect speech output.  (115504070)
- Fixed element reflection attributes to be able to retrieve a disconnected element.  (133693674)
- Fixed VoiceOver focus to activate PDF form fields when it lands on them.  (134522935)
- Fixed tree updates becoming broken when children change for a dynamically ignored element and its unignored ancestor is in the same tree update cycle.  (137876593)
- Fixed handling dynamically-created and nested `aria-modal` dialogs.  (137883473)
- Fixed the accessibility tree to update when a text selection is cleared.  (137960839)

### Browser

#### New Features

- Added contextual menu support for generating text fragment links.  (131712706)

#### Resolved Issues

- Fixed windows not getting restored after updating macOS.  (138413468)

### Canvas

#### Resolved Issues

- Fixed CanvasRenderingContext2D `globalAlpha` property getting ignored for some values of `globalCompositeOperation`.  (134840885)

### CSS

#### New Features

- Added support for cross-document View Transitions.  (133994557)
- Added support for View Transition Classes.  (129849286)
- Added support for View Transition Types.  (132051697)
- Added support for `view-transition-name: auto`.  (137788958)
- Added support for `ruby-align`.  (133656625)
- Added support for `ruby-overhang`.  (135058411)
- Added support for unprefixed `ruby-position`.  (86128259)
- Added support for `text-box-edge`.  (133834296)
- Added support for `text-box-trim`.  (133947582)
- Added support for the `text-box` shorthand.  (133942602)
- Added support for `text-underline-position: left` and  `text-underline-position: right`.  (130621143)
- Added support for `background-clip: border-area`.  (133788384)
- Added support for `scrollbar-gutter`.  (111918434)
- Added support for `scrollbar-width`.  (133019206)
- Added support for `@page` margin descriptors.  (118773100)
- Added support for `jis-b4` and `jis-b5` sizes for `@page`.  (133138325)
- Added support for `:is(:host)`.  (118582384)
- Added support for `closest-corner` and `farthest-corner` in circle and ellipse shapes.  (132936677)
- Added support for `@property` `<string>` syntax.   (133250776)
- Added support for `::target-text`.  (134010063)
- Updated `calc()` to the most recent web standard, including support for dividing by numbers with additional units.  (134446246)

#### Resolved Issues

- Fixed backgrounds applied to a table row repeating in every table cell.  (11446455)
- Fixed the `size` property of `@page` to parse as a descriptor, not a global CSS property.  (92963022)
- Fixed `background-clip: text` to correctly paint text decorations.  (93823895)
- Fixed `font-variant: small-caps normal;` to be invalid syntax.  (102679841)
- Fixed `-webkit-line-clamp: none` to be parsable.  (103158259)
- Fixed `text-underline-offset` to support percentages.  (117246233)
- Fixed `text-decoration-thickness` to work in buttons.  (118320835)
- Fixed the `lh` unit sometimes getting computed before `line-height` is resolved.  (118983248)
- Fixed `touch-action` to use `pan-x pan-y` order when serializing.  (125349558)
- Fixed serialization of `place-content`, `place-items`, and `place-self` properties.  (125415088)
- Fixed: Updated CSS Nesting to remove the hoisting behavior.  (130094168)
- Fixed: Improved scrollbar styling support for interoperability.  (131515907)
- Fixed contrast between `ButtonFace` and `ButtonText` system colors in dark mode.  (131996608)
- Fixed: Disallow matching of `:has()` in CSS Nesting.  (132102543)
- Fixed defaults for text underline position and text emphasis marks in CJK languages.  (132444497)
- Fixed attribute `initial-value` makes the `@property` rule invalid for `[var(--x)]`.  (134317319)
- Fixed invalidating attribute values when programmatically mutated so that page attribute selectors work as expected.  (137228504)
- Fixed CSS Nested declarations inside a `@scope` to behave like `:where(:scope)`.  (137307934)

### Editing

#### Resolved Issues

- Fixed aligning with the standardized version of the `autocorrect` attribute, which does not support Email, URL, and Password fields and does not treat the empty string value in a special way.  (101036922)

### Forms

#### New Features

- Added support for `input type=week` on iOS, iPadOS, and visionOS.  (10854201)

#### Resolved Issues

- Fixed `HTMLSelectElement.prototype.add` with `optgroup` elements.  (120553757)

### History

#### Resolved Issues

- Fixed using Cross-Origin-Opener-Policy HTTP header disabling the back-forward cache.  (128678196)

### JavaScript

#### New Features

- Implemented Float16Array.  (109883982)
- Added support for `Uint8Array.prototype.toBase64` and `Uint8Array.prototype.toHex`.  (129045737)
- Added support for `Uint8Array.fromBase64` and `Uint8Array.prototype.setFromBase64`.  (131509586)
- Added support for `firstDayOfWeek` for `Intl.Locale` info API.  (132731533)
- Added support for `Promise.try` and `RegExp.escape`.  (132952304)
- Enabled Base64 and Hex features.  (133312461)
- Added support for type reflection for `WebAssembly.Module.imports` and `WebAssembly.Module.exports`.  (133429946)
- Added support for `Iterator.prototype.constructor` and  `Iterator.prototype[@@toStringTag]`.  (134598491)
- Added support for `Iterator.from` from Iterator Helpers Proposal.  (135065388)

#### Resolved Issues

- Fixed class field initializers to disallow `yield` and `await` expressions.  (119044881)
- Fixed DestructuringAssignmentTarget to be evaluated prior to calling `[[Get]]` or a stepping iterator.  (121960976)
- Fixed throwing an exception for negative exponent in BigInt in the JIT compiler.  (131051084)
- Fixed RegExp range quantifier to allow 2^53 - 1.  (131710011)
- Fixed `Uint8Array#setFromBase64` to decode and write chunks which occur prior to bad data.  (132198988)
- Fixed: Disallow `yield` and `await` expressions in class field initializers.  (132338331)
- Fixed TimeZone without Time to be rejected in ISO8601 strings.  (133988956)
- Fixed `Object.keys(global)` including non-enumerable properties unless deleted first.  (134121649)
- Fixed duration format’s nanoseconds calculation ordering.  (134526619)
- Fixed TimeZoneAnnotation to disallow sub-minute.  (134541964)
- Fixed: Improved the TypeError message when a WeakMap constructor takes an iterable that yields invalid entry.  (135333331)
- Fixed incorrect SyntaxError when destructuring `let`.  (135353378)

### Loading

#### Resolved Issues

- Fixed `javascript:` URL navigation to another browsing context created from `window.open` not checking the source’s Content Security Policy.  (137941234)

### Media

#### New Features

- Added support for viewing Spatial Photos in Safari in visionOS.  (130545126)
- Added a fallback image to Now Playing when a website doesn’t specify one in MediaSession metadata.  (131185836)
- Added support for allowing websites to override the system-default accessibility caption styling.  (134265139)
- Added support for Spatial Video in Safari in visionOS.  (138482091)

#### Resolved Issues

- Fixed fullscreen error handling to include error messages.  (103073510)
- Fixed `audioTrack.configuration()` values for WebM files.  (133545263)

### Networking

#### New Features

- Added support for Document render-blocking with `<link rel=expect>`.  (122797243)
- Added support for `NavigationActivation.finished` handling.  (133220864)

### PDF

#### Resolved Issues

- Fixed a hang that could occur using the Select All keyboard shortcut ⌘A (Command-A) on a PDF causing all pages to be blank.  (125375518)

### Rendering

#### New Features

- Added support for `blocking=render` attribute for `<script>` and `<style>`.  (121008856)

#### Resolved Issues

- Fixed non-separable blend modes in `mix-blend-mode` to workon elements in compositing layers.  (49387130)
- Fixed MathML to layout invalid markup as an `<mrow>`.  (99335890)
- Fixed: Improved grid track sizing by adding support for wrapped column flex containers, multi-column containers, and items with aspect ratios that depend on row size.  (113984672)
- Fixed margins used for grid items on relayout.  (113984882)
- Fixed grid areas to be considered in layout overflow.  (113985286)
- Fixed grid area overflow to include inline end and block end padding.  (113985683)
- Fixed items that span multiple tracks with optimizations.  (132435056)
- Fixed rendering image content with percentage height in a container with `height: auto`.  (132438040)
- Fixed an extra wrap when a table with mixed `white-space` values applied to the table and table content.  (132633448)
- Fixed repeating `background-image` sized to the `content-box` failing to fill the viewport in an iframe.  (133952319)
- Fixed rendering tick marks of the range input type when the page zoom is less than 1.  (134282707)

### Security

#### New Features

- Added a warning when connecting to a website over an insecure connection.  (99348736)
- Added support for automatic fallback to HTTP if an HTTPS connection or request fails.  (114286729)
- Changed to prefer HTTPS navigations by default.  (133799554)

#### Resolved Issues

- Fixed an empty origin in the location permission prompt for a `blob://` resource.  (134369448)

### SVG

#### Resolved Issues

- Fixed correctly applying `clip-path` to the SVG element.  (80516912)
- Fixed zooming in or out of an SVG with `transform-origin`.  (96318505)
- Fixed an issue for `getPointAtLength` to throw an exception when `path` is empty.  (122574451)
- Fixed `fill` to not be considered a presentation attribute on animation elements.  (128896937)
- Fixed script elements in XHTML documents to work when trusted types are enforced.  (128935225)

#### Deprecations

- Removed non-standard `hasExtension`.  (123734641)

### Web Animations

#### Resolved Issues

- Fixed `alignment-baseline` and `buffered-rendering` to support discrete animation.  (94613679)
- Fixed `hanging-punctuation` to support discrete animation.  (94614108)
- Fixed `scroll-snap-` properties to support discrete animation.  (94614257)
- Fixed `column-span` to support discrete animation.  (96082973)
- Fixed `appearance` to support discrete animation.  (96082999)
- Fixed `hyphenate-character` to support discrete animation.  (132698836)
- Fixed `font-optical-sizing` to support discrete animation.  (132699150)
- Fixed `image-rendering` to support discrete animation.  (132707652)
- Fixed: Improved animation support for shorthands.  (132752305)
- Fixed the `mask-border-*` properties to be animatable.  (132783274)
- Fixed `stroke-color` to be animatable.  (132784589)
- Fixed transform animations that jump back and forth instead of animating continuously.  (135743482)

### Web API

#### New Features

- Added `auxclick` event support to `PointerEvent`.  (25988904)
- Updated `click`, `contextmenu`,  and `click()` to use PointerEvent, providing the `pointerType` property to these events.  (71202646)
- Implemented new dialog initial focus algorithm to match specification changes.  (104667732)
- Added support for the `getPredictedEvents` API to `PointerEvent`.  (117767174)
- Added support for `altitudeAngle` and `azimuthAngle` to `PointerEvent`.  (131974392)
- Added support for the `getCoalescedEvents` API to `PointerEvent`.  (132210576)
- Added support for the `pageswap` and `pagereveal` events for View Transitions.  (133025306)

#### Resolved Issues

- Fixed: Aligned `oncuechange` event handler handling with other event handlers.  (98254058)
- Fixed the Pointer Lock API to work when Fullscreen API is enabled.  (125924062)
- Fixed `popovertarget` to work on buttons in a form.  (131042177)
- Fixed pointer events generated from platform mouse events to use the platform event’s timestamp.  (132051812)
- Fixed popover tab navigation.  (132129060)
- Fixed the directionality of non-HTML elements.  (132210868)
- Fixed setting `.value =` to update `dir=auto` inputs.  (132214207)
- Fixed two `mousemove` events dispatched when the mouse enters a web view window instead of a single one.  (132251320)
- Fixed Pointer Events created for pointer capture to be trusted and composed.  (133259027)
- Fixed `XMLSerializer.serializeToString()` not serializing the children of `<img>` and also not closing the `<img>` if it has children.  (133404338)
- Fixed the directionality of shadow trees.  (133549820)
- Fixed text highlights when selecting large text that ends with a common phrase.  (133786985)
- Fixed copying a link to a common term in an article resulting in an incorrect part of the page being highlighted.  (134882107)
- Fixed: Moved `onbeforeinput` to `GlobalEventHandlers`.  (134943272)
- Fixed `scrollIntoView(...)` for SVG elements.  (135265918)
- Fixed non-modal popover dialog blocking interaction on the content behind it.  (137879216)
- Fixed `pushManager.subscribe` returning an empty endpoint.  (138489579)
- Fixed checking against the “active document” of the pointer when setting the pointer capture.  (139216227)

#### Deprecations

- Removed support for the non-standard “overflow” event.  (71129110)

### Web Apps

#### Resolved Issues

- Fixed Web Application Manifest parsing to trim all ASCII whitespace.  (134336817)

### Web Assembly

#### New Features

- Added support for Wasm garbage collection.  (126103011)
- Added support for Wasm Tail Calls.  (131410516)

### Web Inspector

#### New Features

- Added support for blackboxing ranges within a file.  (130387125)
- Added support for sourcemaps to be blackboxed.  (133731737)
- Added support for showing `boundThis` for arrow functions in the console.  (134268331)

#### Resolved Issues

- Fixed parising attributes added when editing the tag name.  (131607290)
- Fixed an issue where multi-line content in the Console prompt was not scrollable.  (131756916)

### WebDriver

#### New Features

- Added support for using a persistent website data store.  (132757844)

#### Resolved Issues

- Fixed an issue where all script evaluation was unconditionally performed with user activation.  (111970701)
- Fixed WebDriver sometimes taking screenshots with a transparent grey line at the top and no rounded corners.  (116020785)
- Fixed WebDriver to use pointer origin rather than viewport origin for state location resolution.  (128668986)
- Fixed chorded mouse interactions by ensuring input dispatch logic correctly interprets successive `mousepress` or `mouserelease` actions with different `button` values.  (128669517)

### WebXR

#### New Features

- Added support to re-project WebXR content converting depth from forward-Z to reverse-Z.  (125862366)
- Added support for `XRSession.enabledFeatures`.  (132890511)

#### Resolved Issues

- Fixed audio not audible during an immersive session in visionOS.  (132038279)

### WKWebView

#### New Features

- Added support for Genmoji on iOS and iPadOS. WKWebView also includes support for the `NSAdaptiveImageGlyph` API.  (116789598)
- Added support for `WKDownload.originatingFrame` and `WKDownload.userInitiated` API.  (120389237)
- Added support for `WKWebpagePreferences.UpgradeToHTTPSPolicy` in  WKWebView.  (138349588)

#### Resolved Issues

- Fixed `-[WKWebViewConfiguration writingToolsBehavior]` not available when using a deployment target lower than iOS 18.  (136830527) (FB15297419)
- Fixed apps crashing intermittently crashing at launch.  (137595340)
- Fixed text editing corruption after `[NSInputAnalytics didInsertText:]` is called without a session beginning.  (137901213)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)