-
Bug pada komponen bilah navigasi BBC
- Baru-baru ini tim berhasil memperbaiki bug yang aneh. Hanya satu anggota tim yang bisa mereproduksinya, dan itu pun hanya terjadi di rumah.
-
Penyebab bug
- Saat tombol 'Lainnya' di situs BBC diklik, menu seharusnya terbuka, tetapi di monitor eksternal itu tidak berfungsi.
- Masalah ini hanya terjadi di monitor eksternal, dan di Safari tidak ada masalah.
-
Mereproduksi masalah
- Ditemukan bahwa bug hanya muncul ketika monitor eksternal berada di atas laptop.
- Masalah bisa direproduksi dengan menyesuaikan posisi monitor di pengaturan OS.
-
Proses investigasi
- Petunjuk pertama: Di Safari, bug tidak terjadi.
- Petunjuk kedua: Masalah hanya terjadi ketika monitor eksternal berada di atas dan di kiri monitor utama.
- Petunjuk ketiga: Di Chrome dan Firefox, nilai
screenXdanscreenYbernilai negatif. - Petunjuk keempat: Bug hanya muncul ketika
screenXdanscreenYbernilai negatif. - Petunjuk kelima: Di Chrome dan Firefox, sudut kiri atas monitor utama adalah koordinat (0,0).
-
Solusi
- Fungsi
isInvokedByMousediubah agar memeriksa apakahscreenXdanscreenYbukan 0. - Masalahnya rumit, tetapi solusinya sederhana.
- Refaktorisasi kode masih diperlukan, tetapi solusi saat ini sudah memadai.
- Fungsi
-
Pelajaran
- Kita perlu berhati-hati terhadap asumsi tentang cara kerja API.
- Meskipun sudah dilakukan berbagai pengujian, bug ini tetap tidak ditemukan.
- Hal ini menunjukkan bahwa pengalaman pengguna bisa berbeda tergantung konfigurasi monitor.
-
Perbaikan 2024-11-19: Ada kebingungan terkait penggunaan
screenX, dan komponen navigasi telah direfaktorisasi. Dalam posting blog berikutnya, proses refaktorisasi dan jawaban atas berbagai pertanyaan akan dibagikan.
1 komentar
Komentar Hacker News
Menjelaskan alasan menu di situs BBC menunjukkan perilaku berbeda saat dibuka dengan keyboard dan pointer
clickberguna karena independen terhadap perangkatMengusulkan perbaikan
isInvokedByMousedengan memeriksa apakahscreenXdanscreenYtidak bernilai 0Memuji investasi BBC pada aksesibilitas dan penemuan bug tersebut
Mencoba menyelesaikan masalah dengan server-side template, framework CSS, dan JS seminimal mungkin
Menunjukkan bahwa bug ini disebabkan oleh heuristik yang keliru
screenXdanscreenY, nilai negatif juga diperhitungkan, bukan hanya nilai positifMempertanyakan mengapa situs web mengambil posisi mouse dari koordinat layar
clicksaja sudah memberikan informasi yang cukupPenasaran mengapa browser melaporkan koordinat yang berbeda tergantung monitor yang digunakan
Bertanya tentang cara yang benar untuk membedakan klik mouse dan klik keyboard
mousedowndankeydownBerpendapat bahwa koordinat viewport seharusnya digunakan alih-alih koordinat layar
Terkesan karena blog tersebut ditulis tanpa persetujuan dari tim manajemen dan tim hukum BBC