-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
Affected Packages
core
Version(s)
3.0.0
Bug Description
π Issue Description:
Summary
On iOS/iPadOS Safari, performing rapid text selections or repeated selection changes in the TipTap editor causes all click events outside the editor to stop working globally. The page becomes unresponsive to clicks/taps, but touchstart/touchend events still fire. The freeze persists even after unmounting the editor component.
This issue is reproducable in the TipTap default editor: https://tiptap.dev/docs/examples/basics/default-text-editor (see attached video).
Consequence
A lot of users of my web app complain currently, that my web app freezes and nothing works anymore after they edit some text in the editor. Only refreshing the overall page makes it work again.
Environment
- Device: iPhone 16 Pro
- OS: iOS 26.2.1
- Browser: Safari (WebKit)
Reproduction Steps
- Open any TipTap editor on an iOS/iPadOS device via the Safari browser (https://tiptap.dev/docs/examples/basics/default-text-editor)
- Rapidly select and deselect text (perform also multiple rapid selection changes)
- Try to click any button outside the editor (e.g., navigation, modal close button)
Expected: Button responds to click/tap
Actual: Button doesn't respond. No click events are fired anywhere outside the editor.
Technical Details
Console observations during freeze:
- There is no overlay catching the all the clicks. Its only that no
clickevents are synthesized** by Safari aftertouchendanymore touchstartandtouchendevents do fire on buttons and bubble correctly towindow(when I add onTouchEnd-Handler to the button, then this javascript code is executed successfully, but NOT the onClick code)getComputedStyle(button).pointerEventsreturns"auto"(not blocked by CSS)- Removing all event listeners (including
passive: false) does not fix the issue - Even after unmounting the TipTap component, clicks remain broken globally
Browser state:
:hoverpseudo-class gets stuck on<html>element- Safari appears to be in a corrupted "touch gesture in progress" state
- Click synthesis (touch β click conversion) is globally disabled
Impact
- Severity: Critical for mobile users
- All UI outside the editor becomes non-interactive
- Only page reload recovers functionality
- Affects production apps with mobile traffic
Workarounds Tested
β Removing all event listeners β No effect
β Clearing selection (window.getSelection().removeAllRanges()) β No effect
β Dispatching touchcancel events β No effect
β
Using onTouchEnd instead of onClick on buttons β Works, but not scalable
Video Evidence
ScreenRecording_02-10-2026.11-05-53_1.MOV
See attached screen recording where I enforce this freeze using the default TipTap editor from the official website. At the end of the video, I click on several buttons, but no onClick event is triggered -> Buttons do not respond and overall page appears freezed.
In the video you can see that I selected text very often and very fast using double-taps. But users report that just a single normal text selection already caused their page to freeze. So it does NOT need crazy behaviour like I showed in the video.
Browser Used
Safari
Code Example URL
https://tiptap.dev/docs/examples/basics/default-text-editor
Expected Behavior
onClick Listeners of all the html elements should still work. Overall page should not freeze.
Additional Context (Optional)
No response
Dependency Updates
- Yes, I've updated all my dependencies.