Setiap gestur touchpad melewati setidaknya empat lapisan berbeda sebelum memicu aksi di layar — dan setiap lapisan dapat mengubah arti gestur tersebut. Kesalahan pada lapisan-lapisan ini adalah alasan mengapa beberapa touchpad terasa lambat, mengapa gestur hilang setelah pembaruan driver, dan mengapa aplikasi web dapat mendeteksi gulir tapi tidak cubitan. Memahami alur ini akan menjelaskan semuanya.
Lapisan 1: perangkat keras dan firmware sensor
Permukaan touchpad dilapisi oleh grid elektroda kapasitif. Ketika jari mendekat, ia mengganggu medan listrik antara baris dan kolom grid tersebut, dan chip pengontrol touchpad mengukur gangguan itu berkali-kali per detik — setidaknya 100 kali per detik sesuai spesifikasi Windows Precision Touchpad, naik menjadi 125 Hz untuk satu kontak. Chip mengubah pembacaan kapasitansi mentah menjadi daftar objek kontak: masing-masing mendapatkan pasangan koordinat (x, y), perkiraan area kontak, dan ID kontak yang bertahan selama jari tersebut tetap di permukaan.
Tahap firmware ini sepenuhnya merupakan terjemahan analog ke digital. Chip tidak tahu apa itu "sapuan" atau "ketukan". Chip hanya tahu bahwa ID kontak 2 saat ini berada di (381, 204) dan sebelumnya di (376, 204) satu pemindaian lalu. Aliran data mentah ini yang dikirim melalui bus USB atau I2C ke sistem operasi.

Lapisan 2: laporan HID dan mesin gestur OS
Pada Windows Precision Touchpad (PTP), firmware mengemas daftar kontak setiap pemindaian ke dalam laporan HID (Human Interface Device) standar dan mengirimkannya ke Windows. Windows menerima kontak mentah — bukan event yang sudah diinterpretasi — dan mesin gestur milik Windows sendiri (bagian dari tumpukan input di hidclass.sys dan driver touchpad presisi) melakukan semua pekerjaan pengenalan. Ini adalah pembagian arsitektur yang membuat Precision Touchpad berperilaku konsisten di berbagai merek: interpretasi berada di OS, bukan di firmware vendor.
Pada touchpad standar (warisan), pembagian ini tidak ada. Driver vendor — Synaptics, Elan, atau ALPS — memproses data kapasitansi mentah sendiri dan hanya menyerahkan event mouse jadi ke Windows: kursor bergerak, tombol ditekan, delta gulir. Windows tidak pernah melihat kontak individual.
Mesin gestur OS menerapkan aturan klasifikasi pada kontak mentah yang diterimanya:
- Deteksi ketukan — kontak yang muncul, bergerak kurang dari jarak ambang, dan cepat menghilang diklasifikasikan sebagai ketukan. Pergerakan maksimum sebelum kontak didiskualifikasi sebagai ketukan, sapuan, atau tekan lama adalah jarak kecil dalam satuan fisik; OS memetakan ini ke piksel layar berdasarkan dimensi touchpad yang dilaporkan.
- Gulir dua jari — dua kontak yang bergerak ke arah sama dengan kecepatan sebanding menghasilkan event delta gulir, bukan pergerakan pointer. OS meneruskan ini sebagai event roda ke jendela yang sedang fokus.
- Gestur tiga dan empat jari — langsung diarahkan ke aksi shell Windows (setara Mission Control, desktop virtual) atau disadap oleh aplikasi yang mendaftar melalui Windows Gesture API.
- Penolakan telapak tangan — kontak yang datang dari zona tepi touchpad, atau bersamaan dengan aktivitas keyboard, ditekan sebelum logika gestur dijalankan (dibahas terpisah di penolakan telapak tangan).
Lapisan 3: model event browser
Saat gestur mencapai halaman web, ia sudah diproses dua kali — sekali oleh firmware dan sekali oleh OS. Browser hanya menerima event yang dipilih Windows untuk diteruskan. Untuk Precision Touchpad, itu adalah PointerEvents dengan pointerType "mouse" untuk pergerakan kontak tunggal, plus WheelEvents untuk gulir dua jari dan cubit-untuk-zoom. Browser tidak pernah melihat kontak jari individual dari trackpad desktop — data mentah itu tetap di dalam lapisan OS.
Ini berarti gestur yang dapat dideteksi halaman web dari trackpad berbeda secara struktural dari yang dikirim layar sentuh. Layar sentuh mengirim kontak jari individual sebagai event pointerType: "touch", dan halaman dapat mengimplementasikan logika cubit sendiri dengan melacak jarak antara dua pointer simultan. Trackpad mengirim delta zoom yang sudah dihitung sebagai WheelEvent dengan ctrlKey: true — tidak perlu perhitungan dua pointer di sisi web.
Lapisan 4: ambang aplikasi sendiri
Aplikasi — termasuk JavaScript yang berjalan di browser — menerapkan lapisan klasifikasi terakhir di atas event yang diterima. Penguji di atas mengilustrasikan ini secara konkret: mesin gesturnya mendefinisikan TAP_THRESHOLD sebesar 10 px — jika pointer bergerak lebih dari 10 piksel antara pointerdown dan pointerup, maka tidak dianggap ketukan. LONG_PRESS_THRESHOLD sebesar 500 ms aktif jika kontak ditahan selama itu tanpa melewati batas 10 px. DOUBLE_TAP_THRESHOLD sebesar 300 ms berarti dua ketukan harus terjadi dalam 300 milidetik agar dihitung sebagai ketukan ganda. Sapuan membutuhkan jarak minimum 50 px dan kecepatan minimum 0,5 px/ms, sehingga seretan lambat tidak salah diklasifikasikan sebagai sapuan.
Ambang ini ada di setiap lapisan alur. Gestur yang lolos filter area kontak firmware, melewati cek jarak gerak OS, dan tetap menghasilkan urutan event yang benar di browser masih bisa ditolak oleh aplikasi jika berada di luar jendela waktu atau jarak aplikasi. Menyetel satu lapisan tanpa mempertimbangkan yang lain adalah alasan sensitivitas gestur bisa terasa tidak tepat meski pembaruan driver tidak mengubah apa pun yang terlihat pengguna.
Mengapa model berlapis penting untuk diagnosis
Ketika gestur berhenti berfungsi, model lapisan mengarahkan Anda ke tersangka yang tepat. Jika tidak ada gestur yang berfungsi — bahkan ketukan tunggal — masalah ada di lapisan 1 (perangkat keras) atau lapisan awal 2 (driver tidak dimuat). Jika gulir dua jari berfungsi tapi sapuan tiga jari tidak, mesin gestur OS menerima kontak tapi aturan gestur tertentu berubah — periksa Pengaturan Windows untuk gestur yang dinonaktifkan. Jika gulir berfungsi di aplikasi asli tapi tidak di situs web tertentu, masalah ada pada penangan event aplikasi, bukan driver. Dokumen panduan penyetelan Precision Touchpad Microsoft mencantumkan nilai registri yang mengontrol ambang lapisan OS, memungkinkan penyesuaian sensitivitas tanpa menyentuh firmware.
Periksa sendiri: alat di atas mencatat setiap event pointer dan roda yang diterima browser, dan panel Deteksi Gestur menerapkan aturan ambang sendiri di atas event tersebut. Jika lapisan OS meneruskan kontak dengan benar, Anda akan melihat ketukan, ketukan ganda, dan tekan lama tercatat di panel — masing-masing mewakili gestur yang lolos setiap lapisan alur dari grid kapasitif hingga aplikasi browser.