# Web haptics do nothing on iPhone Safari (iOS 26)

> Safari has no navigator.vibrate. The fallback clicks a hidden <input type="checkbox" switch> from script, and iOS 26 ignores scripted clicks: only a real finger on a real switch produces a haptic.

Web page: https://davidewins.com/errors/ios-web-haptics-scripted-click-ignored

Other. Confirmed fix, 16 September 2026.

Versions: iOS 26 Safari, web-haptics

There is no error message for this one, only the symptom in the title.

## Cause

Safari has no navigator.vibrate. The fallback clicks a hidden `<input type="checkbox" switch>` from script, and iOS 26 ignores scripted clicks: only a real finger on a real switch produces a haptic.

## Fix

Overlay an invisible switch input inside the button (parent `position: relative`) so the user's tap hits it, stop the switch's click in a capture listener and re-dispatch to the parent once. Do not use a wrapping label: onClick fires twice.

## More Other errors

- [Scheduled retry job runs every 6 hours and never does anything (401 every time)](https://davidewins.com/errors/cron-secret-posted-to-admin-only-route)
- [eas-cli fails instantly with no route to host while dig shows a healthy IPv4 address](https://davidewins.com/errors/tailscale-magicdns-ipv6-only-eas-cli)
- [adb connect fails after pairing over Wi-Fi](https://davidewins.com/errors/adb-wireless-pairing-port-vs-connect-port)
- [Time-limited offers expire instantly in local development](https://davidewins.com/errors/local-clock-skew-expires-offers)
- [Scraped pages have no ratings, but the browser shows them](https://davidewins.com/errors/scraped-ratings-null-pre-hydration-html)

[Search all errors](https://davidewins.com/errors)
