<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2" -->

---
title: Safari finally ships scrollend, WCAG3 contrast still...
description: Safari 26.2 completes cross-browser support for the scrollend event, eliminating the need for setTimeout debounce hacks. WCAG3 contrast remains unresolved —...
canonical: https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Safari finally ships scrollend, WCAG3 contrast still unresolved | daily.dev
og:description: Safari 26.2 completes cross-browser support for the scrollend event, eliminating the need for setTimeout debounce hacks. WCAG3 contrast remains unresolved —...
og:url: https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2
og:image: https://api.daily.dev/og/posts/IJrlFo9q2.png
og:image:alt: Safari finally ships scrollend, WCAG3 contrast still unresolved
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Safari finally ships scrollend, WCAG3 contrast still unresolved

**[Web Digest](https://daily.dev/sources/webdev_digest)** · 4 min read · 0 upvotes · 0 comments

## Summary

Safari 26.2 completes cross-browser support for the scrollend event, eliminating the need for setTimeout debounce hacks. WCAG3 contrast remains unresolved — APCA was removed from the spec in 2023 and WCAG3 won't finalize before 2030, so teams relying on APCA instead of WCAG2 face legal risk. React Native 0.85 introduces a Shared Animation Backend enabling layout props to animate via the native driver, fixing a major source of frame drops. Solid 2.0 is gaining ecosystem momentum with TanStack offering beta support. Additional notes cover a font-family fallback misconception, WordPress 7.0 delay due to CRDT performance issues, Prisma 7's 9x cold start improvement after a TypeScript rewrite, Expo's AGENTS.md for AI coding tools, Hono vs Express production verdict, GitHub's React PR diff memory optimization, and new tooling like shadcn/studio and npmx.dev.

## Content

**TLDR:** Safari 26.2 completes cross-browser support for the `scrollend` event, finally killing the setTimeout debounce hack. The WCAG3 contrast situation is messier than most teams realize — APCA is not the answer yet, and leaning on it carries legal risk. React Native 0.85 ships a meaningful animation fix. Solid 2.0 momentum is building fast, with TanStack already offering beta support.

---

## Safari ships `scrollend`, closing the last browser gap

Safari 26.2 added native `scrollend` support, completing baseline coverage across Chrome 114, Edge 114, Firefox 109, and now Safari. The event fires once scrolling definitively stops — touch release, keyboard nav, scroll snap, programmatic `scrollTo()`, all covered. If you've been maintaining a `setTimeout` debounce to detect scroll end, you can drop it. Progressive enhancement via feature detection is straightforward, and polyfills exist for older Safari.

---

## WCAG3 contrast: APCA is not the answer yet

APCA was removed from WCAG3 working drafts back in 2023. The current spec explicitly says the contrast algorithm is still undecided, and WCAG3 itself is unlikely to finalize before 2030. Despite this, tools and teams keep treating APCA as the settled WCAG3 approach — which creates real legal exposure if you've abandoned WCAG2 contrast requirements based on that assumption. Until there's an actual standard, either make sure your colors pass WCAG2, or document any deviations carefully with legal counsel involved.

---

## React Native 0.85 fixes a long-standing animation problem

The headline in 0.85 is the new Shared Animation Backend, which lets layout props like `width`, `height`, and `flex` animate via the native driver instead of the JS thread. That's a real fix for a real source of frame drops. The release also unifies the Animated API and Reanimated under one reconciliation engine, which should reduce the friction of mixing the two. Metro gets TLS support for local dev, and the Jest preset is now its own package.

---

## Solid 2.0 is moving faster than expected

TanStack Router, Start, and Query now have beta support for Solid 2.0, and the SolidJS team is noting that other communities are updating first-party libraries ahead of the core team. The monthly SolidJS roundup covers the v2 beta and the SolidStart roadmap. Worth watching if you've been curious — the ecosystem is clearly not waiting around.

---

## Also notable

- **`font-family` fallback misconception:** Declaring a single font on a child element doesn't fall back to the parent's font stack — it falls back to the browser default. Always declare a complete font stack on every `font-family` rule, not just on `:root`.
- **WordPress 7.0 delayed:** A performance issue in the Real-Time Collaboration database architecture (Yjs/CRDT with HTTP polling) has paused pre-releases until April 17th, with a revised schedule due April 22nd. The release also ships a unified WP AI Client PHP library supporting OpenAI, Anthropic, Google, Ollama, and others.
- **Prisma 7 performance:** Prisma's TypeScript rewrite dropped bundle size from ~14MB to ~1.6MB with a 9x cold start improvement — changes the calculus on the Drizzle vs Prisma decision for edge runtimes.
- **Expo AGENTS.md:** The next `create-expo-app` will auto-generate an `AGENTS.md` with official Expo Agent skills to guide AI coding tools toward current APIs, plus a symlink to `CLAUDE.md`. Opt out with `--no-agents-md`.
- **DESIGN.md format:** TypeUI proposes a markdown-based design skill file that gives LLMs brand guidelines and accessibility rules to generate UI code, with CLI support for Claude, Codex, and Google Stitch agent folders.
- **Hono vs Express:** After six months on Hono in production, the practical verdict is: use Hono for greenfield TypeScript targeting edge runtimes, stick with Express for stable existing apps. The Cloudflare lock-in concern is an infrastructure choice, not a Hono problem.
- **GitHub's React PR diff optimization:** GitHub engineering published a case study on cutting memory usage and interaction latency in their React-powered PR diff view — worth reading if you're working on large list or diff rendering.
- **shadcn/studio:** An open-source extension of shadcn/ui with additional component variants, animated components, a live Tailwind v4 theme generator, and an MCP server integration for IDEs.
- **npmx.dev:** An unofficial lightweight npm registry frontend with instant search, keyboard navigation, built-in source viewer, and OSV security insights — just swap the domain from npmjs.com.

## Similar posts on daily.dev

- [React Native solves some real problems](https://daily.dev/posts/react-native-solves-some-real-problems-bagnpeani) · Bytes by ui.dev · 2 upvotes · 0 comments
- [Web-Perf Wednesday 010 – Safari Keeps Scrolled Content in Place – CSS Wizardry](https://daily.dev/posts/web-perf-wednesday-010-safari-keeps-scrolled-content-in-place-css-wizardry-hqdpzyitx) · CSS Wizardry · 0 upvotes · 0 comments
- [Safari Adds scrollend Event Support, Completing Baseline Browser Coverage](https://daily.dev/posts/safari-adds-scrollend-event-support-completing-baseline-browser-coverage-7uivasdot) · InfoQ · 0 upvotes · 0 comments
- [New to the web platform in April](https://daily.dev/posts/new-to-the-web-platform-in-april-crm1i78tm) · web.dev · 118 upvotes · 8 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#react-native](https://daily.dev/tags/react-native), [#safari](https://daily.dev/tags/safari), [#solidjs](https://daily.dev/tags/solidjs)

[View this post on daily.dev](https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2","headline":"Safari finally ships scrollend, WCAG3 contrast still unresolved","text":"Safari 26.2 completes cross-browser support for the scrollend event, eliminating the need for setTimeout debounce hacks. WCAG3 contrast remains unresolved — APCA was removed from the spec in 2023 and WCAG3 won't finalize before 2030, so teams relying on APCA instead of WCAG2 face legal risk. React Native 0.85 introduces a Shared Animation Backend enabling layout props to animate via the native driver, fixing a major source of frame drops. Solid 2.0 is gaining ecosystem momentum with TanStack offering beta support. Additional notes cover a font-family fallback misconception, WordPress 7.0 delay due to CRDT performance issues, Prisma 7's 9x cold start improvement after a TypeScript rewrite, Expo's AGENTS.md for AI coding tools, Hono vs Express production verdict, GitHub's React PR diff memory optimization, and new tooling like shadcn/studio and npmx.dev.","url":"https://daily.dev/posts/safari-finally-ships-scrollend-wcag3-contrast-still-unresolved-ijrlfo9q2","datePublished":"2026-04-11T04:17:40.441Z","dateModified":"2026-04-11T04:17:57.101Z","author":{"@type":"Organization","name":"Web Digest","logo":"https://media.daily.dev/image/upload/s--C833eNQW--/f_auto,q_auto/v1773839396/logos/webdev_digest?_a=BAMAMiiu0","url":"https://daily.dev/sources/webdev_digest"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/webdev_digest","name":"Web Digest"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Web Digest","item":"https://daily.dev/sources/webdev_digest"},{"@type":"ListItem","position":3,"name":"Safari finally ships scrollend, WCAG3 contrast still unresolved"}]}
```

