vercel / next.js

The React Framework

Home Page:https://nextjs.org

Repository from Github https://github.comvercel/next.jsRepository from Github https://github.comvercel/next.js

onClick events not working on iOS 12-13 after upgrading to Next.js 14.1.2+ (including v15)

yacchi1123 opened this issue · comments

Link to the code that reproduces this issue

https://github.com/yacchi1123/v0-todo-list-sample

To Reproduce

  1. Deploy a Next.js application using version 14.1.2 or later(including v15)
  2. Open the application on iOS 12 using BrowserStack
  3. Enter a task in the input field and click the "Add" button
  4. The button click has no effect

https://v0-todo-list-sample.vercel.app/

CleanShot.2025-04-03.at.23.22.27.mp4

Current vs. Expected behavior

Current Behavior:

  • When clicking the "Add" button on iOS 12-13 devices, nothing happens
  • The onClick event handler is not triggered
  • No errors are shown in the browser console
  • The same issue occurs with all onClick events in the application
  • This issue only occurs on iOS 12-13 devices
  • The issue started appearing in Next.js version 14.1.2

Expected Behavior:

  • Clicking the "Add" button should trigger the onClick event handler
  • The new task should be added to the todo list
  • All onClick events should work normally as they did in Next.js version 14.1.1 and earlier
  • The application should work consistently across all supported iOS versions

Additional Context:

  • This functionality works correctly in Next.js version 14.1.1 and earlier
  • The issue is reproducible on all iOS 12-13 devices tested through BrowserStack
  • The same code works correctly on newer iOS versions (14+)
  • No JavaScript errors or warnings are present in the console

According to Next.js's official browser support documentation, Safari 12+ is listed as a supported browser with zero configuration required. Therefore, all basic functionality including onClick events should work properly on iOS 12 and later versions, as these use Safari 12+ as their browser engine. This issue appears to violate Next.js's documented browser compatibility guarantees.

https://nextjs.org/docs/architecture/supported-browsers

Provide environment information

Operating System:
  Platform: darwin
  Arch: x64
  Version: Darwin Kernel Version 23.2.0: Wed Nov 15 21:54:10 PST 2023; root:xnu-10002.61.3~2/RELEASE_X86_64
Binaries:
  Node: 20.17.0
  npm: 10.8.3
  Yarn: N/A
  pnpm: 9.15.9
Relevant Packages:
  next: 14.1.2
  eslint-config-next: N/A
  react: 18.3.1
  react-dom: 18.3.1
  typescript: 5.8.2
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)

Not sure

Which stage(s) are affected? (Select all that apply)

Vercel (Deployed)

Additional context

No response

Did you find any reason for this occurance?

I am also facing the similar issue on iOS device where button clicks does not work for 4 seconds after my next js web app loads. I found out that the onTouchStart and onTouchEnd listeners fixes this issue but I am facing issue with swipes in my application when i use these two listeners.

Did you find any reason for this occurance?

I am also facing the similar issue on iOS device where button clicks does not work for 4 seconds after my next js web app loads. I found out that the onTouchStart and onTouchEnd listeners fixes this issue but I am facing issue with swipes in my application when i use these two listeners.

I had this exact issue, and still don't understand what was going on but it was being causes by a Pie chart from recharts. Still working on a fix, currently only confirmed removing my charts fixes it.

Any chance you're also using that?