WKWebView crash on iOS 26 Beta with -webkit-user-select: none

On iOS 26 Beta, WKWebView consistently crashes when interacting with pages that use -webkit-user-select: none. This issue does not reproduce in Safari, but only when the same content is loaded inside a WKWebView.

Steps to Reproduce:

Install iOS 26 Beta.

Open a WKWebView that loads a webpage with the following style applied globally:

-webkit-user-select: none;

Perform the following gesture sequence inside the WKWebView:

Double tap anywhere in the web content. On the second tap, keep your finger pressed (do not lift). While still holding the second tap, drag your finger across the screen (pan). This sequence reliably produces the crash.

Expected Result: No crash. The gesture should either be ignored or handled gracefully.

Actual Result: The app crashes 100% of the time with the following exception:

#0	0x000000013f1a0874 in __pthread_kill ()
#1	0x00000001357522ec in pthread_kill ()
#2	0x00000001801ad950 in abort ()
#3	0x00000001802fa26c in __abort_message ()
#4	0x00000001802ea1a4 in demangling_terminate_handler ()
#5	0x0000000180077218 in _objc_terminate ()
#6	0x00000001802f9758 in std::__terminate ()
#7	0x00000001802fc7c0 in __cxxabiv1::failed_throw ()
#8	0x00000001802fc7a0 in __cxa_throw ()
#9	0x000000018009c1bc in objc_exception_throw ()
#10	0x00000001804f38f8 in +[NSException raise:format:] ()
#11	0x000000018c5fb570 in -[CALayer setPosition:] ()
#12	0x0000000185d02414 in -[UIView _backing_setPosition:] ()
#13	0x00000001867ec978 in -[UIView setCenter:] ()
#14	0x0000000186666468 in -[_UIEditMenuContentPresentation _displayPreparedMenu:titleView:reason:didDismissMenu:configuration:] ()
#15	0x0000000186666088 in __54-[_UIEditMenuContentPresentation _displayMenu:reason:]_block_invoke ()
#16	0x00000001867b3ed4 in -[UIEditMenuInteraction _editMenuPresentation:preparedMenuForDisplay:completion:] ()
#17	0x0000000186665fb0 in -[_UIEditMenuContentPresentation _displayMenu:reason:] ()
#18	0x0000000186665de4 in -[_UIEditMenuContentPresentation displayMenu:configuration:] ()
#19	0x00000001867b3260 in __58-[UIEditMenuInteraction presentEditMenuWithConfiguration:]_block_invoke ()
#20	0x00000001867b4c98 in __80-[UIEditMenuInteraction _prepareMenuAtLocation:configuration:completionHandler:]_block_invoke ()
#21	0x000000018653ff80 in __109-[UITextContextMenuInteraction _editMenuInteraction:menuForConfiguration:suggestedActions:completionHandler:]_block_invoke ()
#22	0x0000000186540448 in __107-[UITextContextMenuInteraction _querySelectionCommandsForConfiguration:suggestedActions:completionHandler:]_block_invoke ()
#23	0x000000018dba84f8 in WTF::Detail::CallableWrapper<WTF::CompletionHandler<void (IPC::Connection*, IPC::Decoder*)> IPC::Connection::makeAsyncReplyCompletionHandler<Messages::WebPage::RequestDocumentEditingContext, WTF::CompletionHandler<void (WebKit::DocumentEditingContext&&)>>(WTF::CompletionHandler<void (WebKit::DocumentEditingContext&&)>&&, WTF::ThreadLikeAssertion)::'lambda'(IPC::Connection*, IPC::Decoder*), void, IPC::Connection*, IPC::Decoder*>::call ()
#24	0x000000018dca14cc in WTF::Detail::CallableWrapper<WebKit::AuxiliaryProcessProxy::sendMessage(WTF::UniqueRef<IPC::Encoder>&&, WTF::OptionSet<IPC::SendOption>, std::__1::optional<IPC::ConnectionAsyncReplyHandler>, WebKit::AuxiliaryProcessProxy::ShouldStartProcessThrottlerActivity)::$_1, void, IPC::Connection*, IPC::Decoder*>::call ()
#25	0x000000018e2d5c54 in IPC::Connection::dispatchMessage ()
#26	0x000000018e2d6118 in IPC::Connection::dispatchIncomingMessages ()
#27	0x00000001997f9c58 in WTF::RunLoop::performWork ()
#28	0x00000001997fa930 in WTF::RunLoop::performWork ()
#29	0x000000018044d4dc in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#30	0x000000018044d424 in __CFRunLoopDoSource0 ()
#31	0x000000018044cc0c in __CFRunLoopDoSources0 ()
#32	0x000000018044bd84 in __CFRunLoopRun ()
#33	0x0000000180446e24 in _CFRunLoopRunSpecificWithOptions ()
#34	0x00000001924c19bc in GSEventRunModal ()
#35	0x00000001862217a8 in -[UIApplication _run] ()
#36	0x00000001862259d0 in UIApplicationMain ()

Same issues below.

https://developer.apple.com/forums/thread/796799 https://developer.apple.com/forums/thread/796501 https://developer.apple.com/forums/thread/796874 https://developer.apple.com/forums/thread/796686

Answered by mqzkim in 854403022

Fixed on iOS beta 7

You can open a WKWebView and inject the following JavaScript to reproduce the issue:

(function() {
  var style = document.createElement('style');
  style.innerHTML = `
    * {
      -webkit-user-select: none;
    }
  `;
  document.head.appendChild(style);
})();

And.. when the app is built with Xcode 26 Beta, the issue does not reproduce.

Accepted Answer

Fixed on iOS beta 7

WKWebView crash on iOS 26 Beta with -webkit-user-select: none
 
 
Q