- Scrolljacking menimpa kecepatan, arah, dan efek scroll bawaan browser, sehingga mengganggu penjelajahan web yang terprediksi dan diharapkan pengguna
- Dalam riset kegunaan Nielsen Norman Group, banyak peserta kehilangan orientasi, dan sebagian menganggap scroll yang berubah sebagai bug
- Plugin momentum, smooth, dan inertial scrolling merusak memori otot serta fungsi bawaan browser, sehingga sulit mengetahui posisi saat ini di halaman yang panjang
- Animasi transisi layar dan ketergantungan pada JavaScript meningkatkan beban aksesibilitas dan performa pada mabuk gerak/pusing, teknologi bantu, perangkat kelas bawah, dan lingkungan mobile
- Pengguna datang untuk melihat konten, bukan efek scroll, jadi situs sebaiknya mempertahankan scroll native yang cepat apa adanya
Bagaimana Scrolljacking Merusak Penjelajahan Web
- Scrolljacking adalah praktik mendefinisikan ulang perilaku scroll bawaan browser untuk mengubah kecepatan, arah, dan efek scroll pada halaman web
- Plugin momentum scrolling, smooth scrolling, dan inertial scrolling termasuk bentuk scrolljacking yang umum
- Meskipun terlihat seperti peningkatan, praktik ini mengganggu pengalaman menjelajah web yang alami, efisien, dan dapat diprediksi
- Dampaknya terutama muncul pada kegunaan, aksesibilitas, dan performa
Kebingungan yang Terlihat dalam Riset Kegunaan
- Riset kegunaan Nielsen Norman Group menunjukkan bahwa scrolljacking dapat membuat pengguna kehilangan orientasi
- Banyak peserta mengalami setidaknya tingkat kehilangan orientasi yang minimal
- Sebagian pengguna menafsirkan perilaku scroll yang berubah sebagai bug
- Pengguna yang berorientasi tugas jauh kurang toleran terhadap scrolljacking dibanding pengguna yang berorientasi eksplorasi
- Seorang peserta bereaksi dengan inti pernyataan, “Saya sudah swipe penuh tapi tidak berpindah ke mana pun,” dan mengatakan bahwa jika ia adalah calon pelanggan, ia akan sangat kesal
- Di mobile, masalah menjadi lebih besar karena durasi scroll yang panjang dan layar yang kecil
Pelanggaran terhadap Ekspektasi dan Kendali Pengguna
- Pengguna mengharapkan perilaku dasar bahwa saat mereka scroll, konten langsung bergerak
- Plugin momentum scrolling memberikan gerakan beranimasi alih-alih perpindahan yang instan dan dapat diprediksi
- Perubahan seperti ini mengganggu memori otot dan kebiasaan lama yang diandalkan pengguna untuk bernavigasi secara efisien
- Saat scroll bawaan ditimpa, pengarahan visual situs ditempatkan di atas preferensi atau kebutuhan pengguna
- Pengguna mengunjungi situs untuk melihat konten, bukan untuk mengalami scroll yang dibuat terlalu dramatis
Mabuk Gerak dan Beban Aksesibilitas
- Plugin momentum scrolling menambahkan animasi yang terasa melayang atau bergoyang, yang bisa membebani pengguna yang rentan terhadap mabuk gerak atau pusing
- Banyak situs tidak menyediakan opsi untuk mematikannya, sehingga pengguna sulit menghindari ketidaknyamanan saat membaca
- Teknologi bantu seperti screen reader dan navigasi keyboard dapat terganggu karena jeda waktu
- Pengguna dengan gangguan motorik atau keterbatasan penglihatan dapat merasa lebih sulit menggunakan situs karena jeda ini
- Aksesibilitas harus diperlakukan sebagai kebutuhan dasar dalam penggunaan web, bukan fitur opsional
Penurunan Performa dan Konsistensi antar Perangkat
- Plugin momentum scrolling memuat JavaScript, dan dapat menyebabkan jeda, patah-patah, atau kerusakan pada perangkat lama atau berspesifikasi rendah
- Alih-alih terasa “smooth”, halaman justru bisa terlihat seperti rusak di perangkat yang lemah
- Rendering animasi membutuhkan library JavaScript yang membengkak, dependensi tambahan, dan lebih banyak siklus CPU
- Akibatnya, waktu muat halaman bisa menjadi lebih lambat
- Di jaringan mobile atau wilayah dengan koneksi buruk, efek scroll yang berlebihan membuat halaman lebih lambat dan kurang mudah diakses
Masalah Fungsi Bawaan Browser dan Kesadaran Posisi
- Browser modern sudah menyediakan pengaturan momentum scrolling bagi pengguna yang menginginkannya
- Plugin pihak ketiga dapat menimpa atau berbenturan dengan fungsi bawaan ini, sehingga merusak gesture scroll kustom atau momentum scrolling
- Preferensi pengguna seperti pengaturan reduce motion di seluruh sistem mungkin tidak bekerja seperti yang diharapkan
- Animasi momentum scrolling menambahkan jeda antara input pengguna dan hasil yang terlihat
- Di halaman panjang, hal ini membuat posisi saat ini lebih sulit dipahami secara akurat, dan navigasi cepat menjadi merepotkan
Power User dan Biaya Pemeliharaan
- Bagi power user yang ingin memindai dokumen dengan cepat atau berpindah secara presisi di halaman, momentum scrolling memperlambat alur kerja
- Mereka harus menunggu animasi yang lambat selesai, sehingga bertentangan dengan harapan pengguna yang ingin segera menyelesaikan pekerjaan
- Plugin momentum scrolling bukan fitur yang cukup dipasang sekali lalu selesai
- Diperlukan pembaruan berkala agar tetap kompatibel dengan browser, sistem operasi, dan perangkat terbaru
- Setiap pembaruan berisiko menghadirkan bug baru, dan menambah pekerjaan bagi tim pengembang alih-alih menggunakan waktu dan biaya tersebut untuk membuat situs lebih cepat, aman, atau optimal
Kesimpulan: Biarkan Scroll Tetap Menjadi Perilaku Bawaan
- Scrolljacking dan plugin momentum scrolling menambahkan kompleksitas yang tidak perlu, menurunkan kegunaan, dan membuat pengguna frustrasi
- Seperti ungkapan Nielsen Norman Group, “kegunaan adalah fondasi dari kesenangan”
- Daripada menciptakan ulang scroll, lebih baik mempertahankan perilaku scroll yang native, dapat diprediksi, dan cepat
- Jangan jadikan scroll sebagai acara khusus; biarkan pengguna cukup melakukan scroll
1 komentar
Komentar di Hacker News
Jangan utak-atik URL, navigasi browser, atau tombol kembali juga
Rasanya ini pertarungan yang sudah lama kalah, dan SPA merusak web sehingga jadi jauh lebih buruk
History API baik-baik saja, jadi SPA dan navigator internalnya bisa dibuat bekerja selaras dengan browser dan pengguna
Namun banyak developer merusaknya karena tidak peduli pada dasar-dasar web seperti kemampuan bookmark dan navigasi
SPA yang bagus harus berperilaku seperti situs web biasa; Anda seharusnya tidak sadar itu SPA selain karena cepat dan responsif
Memang benar status tertentu harus bisa di-bookmark atau dibagikan, tetapi untuk itu jauh lebih baik URL berubah di tempat saja daripada membuat langkah navigasi baru
Yang merusak web adalah orang-orang yang tidak peduli pada dasar web, URL, tombol kembali, dan pengalaman pengguna saat scroll; bukan SPA itu sendiri
Browser seharusnya memperbaikinya, tetapi inersianya terlalu besar sehingga sepertinya tidak akan terjadi
Sikap “kami lebih tahu daripada pengguna” menurut saya tidak hanya berlaku pada scroll Momentum, tetapi juga pada banyak tren desain UX saat ini
Saya penasaran bagaimana kita bisa sampai pada pemujaan estetika sampai-sampai mengorbankan segalanya
Ada sikap sangat merendahkan yang mencegah pengguna memikul tanggung jawab apa pun sendiri
Hari ini pun saya mencari cara mematikan perilaku menyebalkan di macOS: “kata sandi diperlukan untuk mengaktifkan Touch ID”; saya paham permintaan setelah reboot, tetapi permintaan yang tampaknya berbasis waktu sepertinya tidak bisa dimatikan
Cara terdekat yang saya temukan adalah mengurangi batas waktu dengan perintah
bioutil, dan tidak bisa memperpanjangnyaSaya jadi ingin merekayasa balik lokasi pemeriksaan nilai maksimum dan melihat apakah bisa melewatinya dengan memanggil API tingkat bawah secara langsung
Ini justru lebih mirip ketiadaan desain UX
Ada tulisan blog bagus berjudul kira-kira “Button presses You”, tetapi saya tidak bisa menemukannya
Intinya, tujuan aplikasi bergeser bukan lagi menentukan apa yang pengguna ingin program lakukan, melainkan aplikasi yang mengarahkan pengguna harus melakukan apa dan bagaimana
Scrollbar juga jangan diutak-atik
Belakangan sepertinya ada tren membuatnya selebar sekitar 1px di mana-mana
Kalau benar-benar ingin membuat aplikasi ergonomis, gesture satu atau dua jari, misalnya menarik dengan jari untuk scroll, harus berfungsi dengan baik
Akibatnya, satu-satunya cara untuk scroll di desktop adalah menyeret seleksi teks melewati tepi frame
Saya berusaha tidak memakai konten yang meluap, tetapi ketika memang harus meluap, scrollbar mengganggu desain dan scrollbar bawaan terlalu jelek, jadi saya sembunyikan
Begitu mouse digerakkan, ia muncul; saat berhenti, ia menghilang
Kalau ingin melihat posisi progres, cukup gerakkan mouse sedikit
Saya sudah memakai internet sejak era Gopher, dan menyukai minimalisme estetika HTML murni
Tautan di bawah tulisan menuju situs web yang menginspirasi artikel ini juga sangat bagus
Saat melihat source pada halaman seperti ini, rasanya bukan sekadar nostalgia sederhana, melainkan muncul perasaan hangat bahwa “orang-orang ini paham sesuatu”
Mirip adegan dalam dokumenter Helvetica ketika para desainer menjelaskan sensasi saat akhirnya bisa memilih Helvetica yang baru alih-alih font script jelek bergaya 1950-an
Saya rasa landing page mencolok yang isi latarnya berubah mengikuti scroll atau bagian halaman itu sendiri terpecah juga termasuk dalam hal ini
Contoh: https://webflow.com/made-in-webflow/website/Translate-Webflo...
Scroll dengan kemiringan di iPad membantu orang yang lebih tua membaca dan menggulir dengan cepat, dan auto-scroll juga cukup bagus
Saya masih sama bencinya seperti saat pertama melihat tombol < > dimasukkan ke baris item pada halaman yang semula hanya di-scroll naik-turun
Platform media streaming paling terkenal buruk dalam hal ini, tetapi bukan satu-satunya pelaku
Yang paling saya benci belakangan ini adalah membajak Ctrl+F atau Ctrl+K
Dari sisi browser, untuk memungkinkan ini pasti perlu kode tambahan, dan rasanya Google, Apple, atau Mozilla tidak perlu mengeluarkan biaya apa pun jika tidak menulis kode itu
Browser seharusnya menyediakan shortcut alternatif seperti Shift+Ctrl+F untuk kasus seperti ini
Saya baru saja mengetahui bahwa Shift+Cmd+F melakukan sesuatu di Firefox
Kombinasi tombol standar tidak boleh diutak-atik
Jangan mengambil fungsi aplikasi lain dan mengejutkan pengguna
Belakangan di Google Sheets pada Mac, Cmd-F untuk pencarian di dalam spreadsheet berhenti berfungsi; memang caranya adalah membajak shortcut sistem, tetapi sebenarnya tidak ada fungsi pengganti juga
Jadi untuk mencari, saya harus pergi ke menu bar Sheets dan menemukannya di dalam menu
Jangan utak-atik juga halaman yang saat di-scroll ke bawah menjalankan animasi, elemen bergerak ke samping, dan harus melewati gerbang scroll sebelum bisa turun lagi ke bawah halaman
Itu desain yang mengerikan, mengganggu, menghalangi, dan memusuhi pengguna
Yang paling lucu adalah tautan “Back to the normal version” hanya bisa diklik setelah kembali ke bagian paling atas dengan smooth scroll
Kena jebakan dengan sempurna
Saya penasaran apakah ini bisa dimatikan di Firefox lewat
about:settingsAtau apakah deteksi event-nya akan rusak?
Sebagai alternatif, ekstensi browser mungkin bisa membantu
Implementasinya kemungkinan berbeda-beda untuk tiap kasus, dan contoh halaman [1] menggunakan pustaka luxy.js [2]
Pada halaman spesifik ini [1], menjalankan perintah berikut di konsol developer tools bisa menonaktifkan perilaku smooth scroll
luxy.init({ wrapperSpeed: 1.0});