SaaS & Software·Jul 22, 2026

Safari Technology Preview 248 Released

Safari Technology Preview Release 248 is now available for download for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update. This r

Hacker News7 min readSingle source
Safari Technology Preview 248 Released
Image · Hacker News
The gist
3-point summary · 1 min

Safari Technology Preview Release 248 is now available for download for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update. This r

  • Safari Technology Preview Release 248 is now available for download for macOS Golden Gate and macOS Tahoe.
  • If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update.
  • This release includes WebKit changes between: 315567@main…316817@main.
In this article

Safari Technology Preview Release 248 is now available for download for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update. This release includes WebKit changes between: 315567@main…316817@main. Accessibility Resolved Issues Fixed VoiceOver on Safari unable to navigate to content revealed by disclosure widgets using hidden="until-found". (315964@main) (173228707) Fixed stale aria-labelledby when the referenced element dynamically changes its aria-label. (316316@main) (180319221) CSS New Features Added support for forwarding missing color components when interpolating between analogous color spaces. (315569@main) (180239320) Added support for the no-clamp option on the CSS progress() function. (315977@main) (180473472) Resolved Issues Fixed serialization of various CSS at-rules not escaping identifiers. (315795@main) (178750383) Fixed:last-child and related selectors incorrectly gating on parser state outside of style resolution. (316495@main) (178879939) Fixed changing the color-scheme of an not invalidating the appearance of the embedded document. (316467@main) (179177141) Fixed CSS scroll snap re-snap to prefer the fragment-targeted (:target) snap area over other aligned snap targets. (315880@main) (180108825) Fixed the CSS preload scanner failing to preload @import rules that follow an @layer statement rule. (315576@main) (180170656) Fixed serialization of CSSViewTransitionRule. (315614@main) (180170814) Fixed MediaList.deleteMedium() to parse its argument as a media query and remove all matching queries. (315579@main) (180270019) Fixed MediaList.appendMedium() to parse its argument as a single media query and suppress duplicates. (315594@main) (180291283) Fixed grid items with stretch or fit-content preferred sizes computing incorrect minimum-content contributions when sizing tracks. (316296@main) (180748205) Fixed inserting a CSS rule while a view transition is active causing the group animation to snap to its final state. (316436@main) (181100818) Fixed CSS var() to only resolve its fallback when the first argument resolves to the guaranteed-invalid value. (316280@main) (181114298) Fixed navigating away from a render-blocked document before its first rendering opportunity incorrectly firing pagereveal and starting an outbound cross-document view transition. (316446@main) (181191512) Editing Resolved Issues Fixed drag images of DOM elements with CSS transforms not rendering correctly. (316077@main) (99614217) Fixed opaque DOM mutations coming from dictation on iOS. (316049@main) (163454428) Fixed deletion in an editable table leaving an empty trailing table row behind. (315990@main) (180877315) Fixed vertical caret movement in editable content ignoring the requested editable-type parameter. (316241@main) (181000174) Forms Resolved Issues Fixed the concentric inner-button corner radius on horizontal text form controls incorrectly ignoring the bottom inset. (316022@main) (180869927) Images Resolved Issues Fixed a regression where RGB gain map images were decoded to 8 bits per channel, causing a color shift and incorrect brightness. (316069@main) (179152566) Fixed handling of the gain-map target pixel format when decoding HDR images to fall back safely when the format cannot be parsed. (316405@main) (181180757) JavaScript New Features Added support for the TC39 BigInt Math proposal, exposing Math-equivalent methods on BigInt such as BigInt.pow and BigInt.sqrt. (315974@main) (152472996) Media Resolved Issues Fixed and controls rendering incorrectly when rotated via CSS transform. (315718@main) (37516619) Fixed subtitles and closed captions not appearing in fullscreen video on iPhone. (315789@main) (175298523) Fixed ArrayBuffer-backed YUV VideoFrame with a visibleRect rendering with offset chroma channels. (315742@main) (180202939) Fixed video playback of streams from certain sources such as security cameras not working. (315774@main) (180411019) Fixed transient device rotation resulting in captured video frames having the wrong orientation. (315821@main) (180429147) Fixed Media Source Extensions playback and seek by loosening the gap tolerance between buffered ranges. (316146@main) (180439090) Navigation Resolved Issues Fixed a element not being repainted when the background changed. (316415@main) (177975964) Fixed a regression where block-axis padding on a flex column container with overflow: auto was excluded from scrollHeight. (315813@main) (179376053) Fixed an issue where an embedding an SVG with a near-integral intrinsic width rendered one device pixel narrower than expected. (315807@main) (180490343) Fixed elements with filter: drop-shadow() not being fully repainted when a child is resized. (316450@main) (181284741) SVG Resolved Issues Fixed SVG SMIL length animations to reject invalid to, from, and by values such as those with leading whitespace. (315949@main) (118537155) Fixed Unicode text with complex scripts not rendering correctly along a curved. (316144@main) (120284006) Fixed SVGLength.convertToSpecifiedUnits() failing when converting from px to %, em, or ex. (315953@main) (172056830) Fixed SVG geometry presentation attributes like cx, cy, r, rx, ry, x, y, width, and height being incorrectly applied to elements such as on which they are not permitted. (315946@main) (175672111) Fixed an issue where the per-character rotate attribute was discarded on a, so it now composes with the path tangent angle. (315786@main) (178044478) Fixed several SVG styling spec-compliance failures. (316174@main) (181052042) Fixed dynamic changes to orient and markerUnits on not repainting elements that reference it. (316350@main) (181106538) Fixed SVG SMIL number, integer-optional-integer, number-optional-number, and path animations to not apply when their from, to, or by values fail to parse. (316468@main) (181308150) Scrolling Resolved Issues Fixed CSS scroll snap points inside zero-sized elements not working correctly. (315948@main) (172863699) Fixed CSS scroll snap re-snap to prefer a snap area that contains the focused or fragment-targeted element. (315927@main) (180707984) Security Resolved Issues Fixed a regression where some websites failed to display and logged Content Security Policy errors in the console. (316290@main) (179684592) Fixed same-page navigations being incorrectly checked against Content Security Policy. (315759@main) (180342503) Fixed Content Security Policy frame-ancestors violations in report-only policies being ignored instead of reported. (315753@main) (180447621) Fixed Content Security Policy parsing to reject trailing characters after the closing quote on nonce-source and hash-source values. (316008@main) (180903857) Fixed Content Security Policy trusted-types expressions to reject trailing characters after keywords and the wildcard. (316089@main) (180973793) Storage Resolved Issues Fixed an issue where IndexedDB transactions could be blocked for an extended period before starting when another page’s transaction was suspended in the background. (315609@main) (178769599) Web API Resolved Issues Fixed the Async Clipboard API to request paste access asynchronously. (315997@main) (75969974) Fixed Digital Credentials to surface OperationError for platform-cancellation and unknown errors instead of AbortError or UnknownError. (315973@main) (174308268) Fixed Digital Credentials rejecting with the wrong error code and synchronously; rejections are now queued as a task with the correct error. (315895@main) (174895437) Fixed KeyboardEvent.getModifierState("AltGraph") and MouseEvent.getModifierState("AltGraph") always returning false. (315804@main) (180597374) Fixed Credential.type returning "digital-credential" instead of "digital" for digital credentials. (315891@main) (180618646) Fixed aborting navigator.credentials.get() leaving the digital-credentials document picker stuck on screen. (316494@main) (180812397) Fixed FileReader.readAsText() ignoring the charset parameter of the Blob‘s MIME type. (315996@main) (180890703) Web Inspector Resolved Issues Fixed showing ES2022 class private fields, methods, and accessors when inspecting object instances in the Console. (316171@main) (88527162) Fixed symbolic breakpoints in the debugger so they work with intrinsic functions. (315713@main) (99037335) Fixed a JavaScript breakpoint on a line containing only a semicolon not being triggered. (316519@main) (126707973) Fixed the Console REPL to allow redefinition of variables declared with let and const. (316523@main) (143140659) Fixed the Timeline exporting and importing the wrong timestamp for performance.mark() records. (316073@main) (145226764) Fixed local response overrides mapped to a file being interpreted as Latin-1 (ISO-8859-1) instead of their actual encoding. (316074@main) (149847746) Fixed the Media Logging setting not persisting across page loads. (315758@main) (154766890) Fixed symbolic breakpoints to work with native constructors such as Array, Date, EventTarget, and Worker. (316262@main) (157178256) Fixed missing stack traces for MIME type errors when importing modules. (316529@main) (169396940) Fixed the Accessibility sidebar being empty for nodes inside cross-origin iframes. (316399@main) (178562336) Fixed inline style invalidation to batch DOM.getAttributes commands per tick in cross-origin iframes instead of issuing one command per node. (316487@main) (178830496) Fixed DOM Storage read and write commands to resolve against the frame’s own origin in cross-origin iframes. (316501@main) (179249711) Fixed a moved breakpoint reverting to its original location after closing and reopening Web Inspector. (315585@main) (180083858) Fixed showing the formatted parameters string for prototype objects such as Map.prototype. (315599@main) (180298712) Fixed missing formatted parameter strings for object shorthand methods and arrow functions. (315723@main) (180466459) Fixed an unnecessary colon appearing in front of non-class function properties. (315731@main) (180476445) Fixed a self-canceling ternary that produced an incorrect cross-axis direction in the flex overlay. (316429@main) (181198803) Fixed the color picker force-converting picked colors to Display P3. (316419@main) (181201503) Fixed Page.searchInResources silently omitting cache-backed resources from search results. (316421@main) (181202027) Fixed duplicate invalid CSS declarations both incorrectly displaying as Active in the Styles sidebar. (316418@main) (181203080) Fixed adopted constructable stylesheets being misclassified as User Agent stylesheets in cross-origin iframes. (316433@main) (181204768) Fixed an unsigned underflow that caused the DOM agent to spuriously report power-efficient playback. (316443@main) (181205602) Fixed Network.setExtraHTTPHeaders to replace previously set headers instead of accumulating them. (316444@main) (181282814) WebDriver New Features Added WebDriver support for the Digital Credentials API, including commands to simulate wallet payloads, indefinite waits, and user rejection. (316435@main) (168941907) WebRTC Resolved Issues Fixed the WebProcess AudioSession to remain active while microphone capture is live. (316394@main) (180505014) Fixed the configurationchange event being dropped when a source-side change occurred while a MediaStreamTrack was muted; the event is now deferred until unmute. (316301@main) (180728609)

Integrity note  ·  Xela does not rewrite or paraphrase article content. The excerpt above is the source publication's own words, sanitized for display. For the full piece — including any quotes, charts, or images — read it at Hacker News. Xela's rewritten version is off for this story, so there's no editorial angle attached — you're getting the source's reporting unfiltered. When the rewrite is on, we add a What this means block underneath with the operator/trader takeaway.

What people are saying

Discussion

Hot takes

0/280

Loading takes…

Comments

Discussion · 0

Sign in to comment, like, and save articles.

Sign in

Loading comments…

Keep readingSaaS & Software desk
See all in SaaS
Show HN: ValuePair – a friendship app that cares about values first
·

Show HN: ValuePair – a friendship app that cares about values first

Hey, I would like to show you my project, but it's difficult because it only works with a registration, so I explain the concept to you. The Idea: Everyone who registers has to do an onboarding and answer meaningful questions that help you to find a right match. The matching happens by the system. Once you're done with the onboarding, you enter the pool. When a match is found, you go into a 1on1 14 question-set with that person. All answers are revealed immediately. At the end both decide if they form a connection or not. Only if both agree, the chat opens. Once a connection is formed, they can play through other prepared question sets, so the conversation doesn't get dry. It's also possible to create custom question sets to play through with your connected matches. I just got this idea because I really wanted away from all the typical friendship and dating apps that are just a marketplace of user profiles. I feel like that's the only hook other apps offer, people come back because they are bored and browse through profiles. On tinder it's swiping through pictures and on other apps it's a list of profiles where you can filter with your matching criteria. But all that felt just shallow to me. I think people rarely ask the right questions each other, like really mandatory things that matter to form a any kind of relationship with someone. I've been on multiple different social platforms and it always felt mega shallow. Most people can't even start a good conversation, it's often just stuck at small talk. Maybe it's not even peoples fault, that's why I tried with these question sets to tackle multiple problems. First, that you don't even have to bother with someone if you have entirely different worldviews, which you would normally just find out if you talk long enough with someone. And second, just killing the small talk issue, by giving people a base. So before I started coding this project, I actually did a research if there is anything backed by science to find out, which kind of questions would actually matter to find out, if you can handle someone. There were a lot of studies I've found e.g. "Aron and colleagues (1997)", "Hall (2019)", "Byrne (1971)", "Finkel and colleagues (2012)" and "Hazan and Shaver (1987)". I took their research work and tried to create questions based on them. The project is running on Next, Postgresql, everything dockerized, running on a small Hetzner VPS. I used Claude+Codex to develop everything, but I wouldn't say it's really vibecoded, since I work as a Senior Dev and I used my main tech stack. It's an open beta currently and it's live for like 14 days - I have ~150 users right now. And honestly, I am really overwhelmed by those numbers, because it's the first time that I ever managed to attract this amount of people on a project I've launched. When I started, I launched it as a closed beta, so it was invite only. During that period I got so much good feedback from people, it was incredible. I implemented almost everything my first users told me. Since all the changes, I didn't retrieve any further feedback what people wish would be different. It's just constant good feedback since then. People contact me from alone and just tell me how much they like these questions and the loop. My marketing strategy is mainly Reddit currently, but I started also new methods. I found some super relevant subreddits that had no rules against advertising. When I wrote my posts on reddit, I didn't mention a product name or link. I've only described the idea and if somebody would have interest trying it out. That worked surprisingly well. Another thing I've done was using a social app that allows anonymous posts at your current location, kinda something like "Nextdoor". Posts on this app bring me daily 1-5 new registrations. I wonder what you guys think about it and I am open for any critics! Comments URL: Points: 3 # Comments: 2

Hacker NewsSingle source
Newsletter

Track saas & software every morning.

Daily digest tuned to this beat. The 5 stories most worth your time. Unsubscribe anytime.