Che cos'è il feedback aptico?

Il feedback aptico è una risposta tattile — una piccola vibrazione o tocco — che un dispositivo produce per confermare un'azione o attirare l'attenzione. Sugli smartphone viene generato da un minuscolo motore (su iPhone, il "Taptic Engine" di Apple) che crea impulsi brevi e precisi nel timing. A differenza di una lunga vibrazione ronzante, gli haptic moderni sono nitidi e sottili, progettati per sembrare un clic fisico piuttosto che un allarme.

Nelle app native iOS, gli sviluppatori utilizzano l'API UIFeedbackGenerator per riprodurre diversi pattern aptici come un tocco leggero, un doppio tocco di "successo" o un triplo tocco di "errore". Per molto tempo la piattaforma web su iOS Safari non aveva un equivalente — navigator.vibrate() veniva semplicemente ignorato su iPhone. La libreria ios-haptics sfrutta un effetto collaterale dell'elemento <input type="checkbox" switch> (introdotto in Safari 17.4): attivare/disattivare quello switch attiva il motore aptico del sistema, permettendo alle pagine web di riprodurre pattern aptici brevi da JavaScript.

Descrizione dello strumento

iOS Haptics Tester ti consente di attivare pattern di feedback aptico direttamente dal tuo browser per verificare se il tuo dispositivo e la versione del sistema operativo li supportano. Espone i tre pattern forniti dalla libreria ios-haptics — un singolo tocco, una "conferma" (due tocchi rapidi) e un "errore" (tre tocchi rapidi) — e include anche un pulsante che chiama l'API standard navigator.vibrate() come fallback per Android e altri dispositivi.

Esempi

Azione Sensazione prevista su iPhone (iOS 17.4–26.4) Sensazione prevista su Android
Singolo aptico Un tocco breve e nitido Una vibrazione breve (~200 ms)
Conferma (due aptici rapidi) Due tocchi veloci in successione Due vibrazioni brevi
Errore (tre aptici rapidi) Tre tocchi veloci in successione Tre vibrazioni brevi
Test navigator.vibrate() Nulla sulla maggior parte delle versioni iOS Una vibrazione di ~200 ms

Funzionalità

  • Pulsanti a un tocco per pattern aptici singoli, di conferma e di errore
  • Rilevamento automatico del supporto aptico sul dispositivo corrente
  • Test di fallback integrato per l'API Web standard navigator.vibrate()
  • Registro eventi in tempo reale con timestamp per ogni pattern attivato
  • Banner di stato chiari che spiegano la compatibilità della versione iOS

Casi d'uso

  • Sviluppatori web che verificano che il feedback aptico funzioni su un vero iPhone prima di integrare ios-haptics nel loro sito o PWA
  • Ingegneri QA che controllano come gli stessi pattern si sentono su dispositivi diversi, versioni del sistema operativo e browser
  • Utenti curiosi che vogliono sperimentare la differenza tra il feedback "Taptic" in stile iOS e il più lungo impulso navigator.vibrate() di Android

Come funziona

Su iOS Safari, lo strumento crea dinamicamente un <input type="checkbox" switch> nascosto, lo attiva/disattiva, quindi lo rimuove dal DOM. L'atto di attivare/disattivare quello switch nativo è ciò che attiva il Taptic Engine — non esiste un'API Web pubblica che lo faccia direttamente. I pattern "conferma" e "errore" semplicemente ripetono l'attivazione/disattivazione due o tre volte in rapida successione.

Su dispositivi che non supportano il trucco dello switch iOS, la libreria ricade a navigator.vibrate(), che è ampiamente supportato sui browser Android. Il pulsante "Test navigator.vibrate()" in questo strumento chiama direttamente quell'API in modo da poter confrontare i due meccanismi.

Opzioni spiegate

  • Singolo aptico — Riproduce un tocco breve. Meglio utilizzato per confermare una piccola interazione come un interruttore o un campo modulo di successo.
  • Conferma (due aptici rapidi) — Riproduce due tocchi veloci. Ideale per "salvato", "inviato" o altre conferme positive.
  • Errore (tre aptici rapidi) — Riproduce tre tocchi veloci. Usa per segnalare errori di convalida o guasti distruttivi.
  • Test navigator.vibrate() — Chiama l'API Web Vibration con una durata di 200 ms. Utile per confermare il supporto dei dispositivi non iOS e per confrontare la sensazione rispetto ai pattern iOS.
  • Cancella registro — Rimuove tutte le voci dal registro degli eventi.

Limitazioni

  • Gli haptic iOS programmatici funzionano solo su iOS 17.4 attraverso 26.4. Apple ha corretto il comportamento sottostante in iOS 26.5, quindi chiamare questi pattern da JavaScript non attiva più il Taptic Engine sulle versioni iOS più recenti. L'interazione diretta dell'utente con un vero <input type="checkbox" switch> funziona ancora.
  • iOS Safari ignora navigator.vibrate() su praticamente tutte le versioni, quindi il pulsante di fallback apparirà silenzioso su iPhone.
  • I browser desktop non possono produrre feedback aptico; i pulsanti funzioneranno ma non sentirai nulla.
  • Alcuni browser Android richiedono che la pagina sia in primo piano e un gesto dell'utente prima che navigator.vibrate() si attivi.
  • Il feedback aptico può anche essere disabilitato nelle impostazioni di sistema del dispositivo (ad es. Impostazioni → Suoni e Haptic → System Haptics su iOS).

Suggerimenti

  • Testa su un dispositivo reale, non su un simulatore o emulatore — i dispositivi virtuali non hanno un Taptic Engine.
  • Se nulla accade su iPhone, verifica che System Haptics siano abilitati in Impostazioni e che la Modalità silenziosa non li stia sopprimendo su versioni iOS precedenti.
  • Usa il pattern Conferma con parsimonia; l'uso eccessivo di haptic rapidi diventa rapidamente fastidioso.
  • Combina gli haptic con feedback visivo — un haptic da solo è raramente sufficiente per comunicare lo stato all'utente.

Domande frequenti

Perché non sento nulla sul mio iPhone? Probabilmente sei su iOS 26.5 o più recente, dove Apple ha corretto la tecnica utilizzata da questa libreria. Prova un dispositivo che esegue iOS 17.4–26.4 o verifica che System Haptics siano abilitati in Impostazioni.

Perché navigator.vibrate() non funziona su iPhone? Apple non ha mai implementato l'API Web Vibration in iOS Safari. Attualmente non esiste un modo standardizzato per attivare la vibrazione su iOS da una pagina web.

È sicuro da usare in produzione? La libreria è piccola e priva di effetti collaterali, ma poiché si basa su una particolarità di un elemento HTML specifico, può interrompersi in qualsiasi aggiornamento iOS futuro — come è già accaduto in iOS 26.5. Tratta sempre il feedback aptico come un miglioramento progressivo, mai come un requisito.

Funziona all'interno di una PWA o di un'app "Aggiungi alla schermata iniziale"? Sì, sulle versioni iOS supportate la stessa tecnica funziona nelle app web installate proprio come in Safari.