-
BBC gezinme çubuğu bileşenindeki hata
- Ekip yakın zamanda garip bir hatayı çözdü. Yalnızca bir ekip üyesi bunu yeniden üretebiliyordu ve sorun sadece evde ortaya çıkıyordu.
-
Hatanın nedeni
- BBC web sitesindeki 'Daha fazla' düğmesine tıklandığında menünün açılması gerekiyordu, ancak harici monitörde çalışmıyordu.
- Sorun yalnızca harici monitörde ortaya çıkıyordu ve Safari'de böyle bir problem yoktu.
-
Sorunun yeniden üretilmesi
- Hatanın yalnızca harici monitör dizüstü bilgisayarın üstünde konumlandığında ortaya çıktığı keşfedildi.
- İşletim sistemi ayarlarında monitör konumu değiştirilerek sorun yeniden üretilebildi.
-
İnceleme süreci
- Birinci ipucu: Safari'de hata ortaya çıkmıyordu.
- İkinci ipucu: Sorun yalnızca harici monitör ana monitörün üstünde ve solunda konumlandığında ortaya çıkıyordu.
- Üçüncü ipucu: Chrome ve Firefox'ta
screenXvescreenYdeğerleri negatift i. - Dördüncü ipucu: Hata yalnızca
screenXvescreenYnegatif olduğunda ortaya çıkıyordu. - Beşinci ipucu: Chrome ve Firefox'ta ana monitörün sol üst köşesi (0,0) koordinatıydı.
-
Çözüm
isInvokedByMousefonksiyonu,screenXvescreenYdeğerlerinin 0 olup olmadığını kontrol edecek şekilde değiştirildi.- Sorun karmaşıktı ama çözüm basitti.
- Kodun refactor edilmesi gerekiyor, ancak mevcut çözüm şimdilik yeterli.
-
Çıkarılan dersler
- API'lerin nasıl çalıştığına dair varsayımlara dikkat etmek gerekiyor.
- Çeşitli testlere rağmen bu hata daha önce fark edilmedi.
- Monitör yapılandırmasına göre kullanıcı deneyiminin değişebileceği görüldü.
-
2024-11-19 düzeltmesi:
screenXkullanımına dair bir karışıklık vardı ve gezinme bileşeni refactor edildi. Bir sonraki blog yazısında refactor süreci ve sorulara yanıtlar paylaşılacak.
1 yorum
Hacker News görüşleri
BBC web sitesinde menüyü klavye ve işaretçiyle açarken neden farklı davranış görüldüğünü açıklıyor
clicketkinliğinin cihazdan bağımsız olması nedeniyle faydalı olduğu belirtiliyorisInvokedByMousedeğerini değiştirerekscreenXvescreenYdeğerlerinin 0 dışı olup olmadığını kontrol etme yöntemi öneriliyorBBC'nin erişilebilirliğe yaptığı yatırım ve hatayı bulması övülüyor
Sunucu tarafı şablonlar, CSS framework'leri ve minimum düzeyde JS kullanarak sorunu çözmeye çalıştığını söylüyor
Bunun hatalı bir heuristic nedeniyle oluşan bir bug olduğu belirtiliyor
screenXvescreenYkoordinatlarını kontrol ederken yalnızca pozitif değil negatif değerlerin de dikkate alınması öneriliyorWeb sitesinin neden fare konumunu ekran koordinatlarıyla aldığı sorgulanıyor
clicketkinliğinin yeterli bilgi sağladığı savunuluyorTarayıcının monitöre göre neden farklı koordinatlar bildirdiği merak ediliyor
Fare tıklaması ile klavye tıklamasını ayırmanın doğru yöntemi soruluyor
mousedownvekeydownetkinliklerine dayalı bir bayrak ayarlama yöntemi öneriliyorEkran koordinatları yerine viewport koordinatlarının kullanılması gerektiği savunuluyor
BBC'nin yönetim ve hukuk ekiplerinden onay almadan blog yazısı yayımlamış olmasından etkilendiğini söylüyor