Mekanik Fare Anahtarlarının Çalışma Prensibi ve Çift Tıklama Sorunu
Mekanik fare anahtarları, fiziksel bir metal yaprağın esneyerek devre kartı üzerindeki temas noktalarına değmesi esasıyla çalışır. Fare tuşuna basıldığında, bu metal parça bükülür ve devreyi tamamlar. Ancak metalin esnekliği ve fiziksel doğası gereği, temas noktaları birleştiği ilk anda mikroskobik düzeyde birkaç kez birbirine çarpıp geri seker. Bu duruma "kontak sıçraması" (contact bouncing) veya donanım dünyasında "chattering" adı verilir.
Sağlıklı bir farenin donanım yazılımı veya işletim sistemi, bu çok hızlı gerçekleşen milisaniyelik sıçramaları filtrelemek için debouncing (titreşim engelleme) algoritmaları kullanır. Debouncing algoritması, ilk temastan sonra çok kısa bir süre boyunca gelen diğer sinyalleri yok sayarak tek bir tıklama üretir.
Zamanla, fiziksel aşınma, metal yorgunluğu, nem veya tozlanma nedeniyle anahtarın içindeki metal yaprak esnekliğini kaybeder veya oksitlenir. Bu durum, sıçrama süresinin uzamasına neden olur. Sıçramalar donanımın debouncing süresini aştığında, işletim sistemi tek bir fiziksel basışı ardışık iki hızlı basış olarak algılar. Bu durum, kullanıcının istem dışı çift tıklama sorunu yaşamasına yol açar.
Tarayıcıların Fare Olaylarını Yakalama ve Yönetme Biçimleri
Web tarayıcıları, işletim sisteminden gelen donanım sinyallerini standartlaştırılmış Pointer ve Mouse Event API'leri aracılığıyla web sayfalarına iletir. Bir kullanıcı fareyi hareket ettirdiğinde veya bir tuşa bastığında tarayıcı sırasıyla belirli olayları tetikler.
Fare Tuşu Testi aracı, test alanında gerçekleşen bu olayları gerçek zamanlı olarak yakalar. Bir tuşa basıldığında Basıldı, tuş bırakıldığında ise Bırakıldı olayı tetiklenir. Eğer iki tıklama işletim sisteminin belirlediği süre sınırları içinde gerçekleşirse, tarayıcı ayrıca bir Çift tıklama olayı oluşturur.
Tarayıcıların bu olayları işleme biçiminde bazı önemli farklılıklar ve kısıtlamalar bulunur:
- Bağlam Menüsü Engelleme: Normal şartlarda sağ tık yapıldığında tarayıcı bir bağlam menüsü (context menu) açar. Bu menünün açılması, ardışık sağ tık olaylarının izlenmesini zorlaştırır. Fare Tuşu Testi, sağ tık olaylarını normal şekilde sayabilmek için test alanı içinde bu menünün açılmasını engeller.
- Firefox ve Shift İstisnası: Firefox tarayıcısında, kullanıcı
Shift + sağ tıkkombinasyonunu kullandığında tarayıcı güvenlik ve erişilebilirlik gerekçesiyle web sayfasının engelleme komutunu yok sayar ve bağlam menüsünü her koşulda açar. Bu durumda olay araç tarafından kaydedilemez. - macOS İşletim Sistemi Davranışı: macOS işletim sisteminde, tek tuşlu fare geçmişinden gelen bir tasarım standardı olarak
Ctrl + tıklamakombinasyonu doğrudan sağ tık (ikincil tıklama) olarak yorumlanır ve sisteme bu şekilde iletilir. - Yan Tuşların Engellenmesi: Farelerin üzerinde bulunan Geri ve İleri yan tuşları, tarayıcılar tarafından doğrudan sekme geçmişinde gezinme kısayolu olarak atanmıştır. Fare Tuşu Testi, bu tuşların varsayılan tarayıcı işlevlerini test alanı içinde engellemeye çalışır. Ancak Linux üzerindeki Firefox gibi bazı platformlar ve tarayıcı yapılandırmaları, bu donanım olaylarını web sayfasına hiç ulaştırmadan doğrudan kendisi tüketebilir.
İşaretçi Türleri ve Pointer Events API Farklılıkları
Modern web standartları, farklı giriş yöntemlerini (fiziksel fare, dokunmatik ekran, dijital kalem) tek bir çatı altında toplamak için Pointer Events API'sini kullanır. Fare Tuşu Testi, gelen girdinin türünü ayırt etmek için bu API'den yararlanır ve olay ayrıntılarında işaretçi türünü şu üç kategoriden biri olarak raporlar:
mouse: Fiziksel fareler ve dizüstü bilgisayarlardaki dokunmatik yüzeyler (trackpad) bu sınıfa girer. Tuş kodları ve tekerlek hareketleri tam olarak raporlanır.pen: Grafik tabletler ve dijital kalemler ile yapılan girdileri temsil eder.touch: Akıllı telefon veya dokunmatik monitör ekranlarına yapılan doğrudan temasları ifade eder.
Dokunmatik ekranlarda yapılan dokunmalar (taps) tarayıcı tarafından dokunma olayları olarak algılansa da, donanımsal fare tuşlarının ve kaydırma tekerleğinin fiziksel durumunu test etmek için mutlaka gerçek bir fare veya dokunmatik yüzey kullanılması gerekir.
Kaydırma Tekerleği Fiziği ve Delta Birimleri
Fare tekerleğinin döndürülmesiyle tetiklenen Wheel (tekerlek) olayları, işletim sisteminin ve tarayıcının kaydırma mekanizmasına bağlı olarak farklı birimlerde raporlanır. Tarayıcılar, kaydırma miktarını (delta) şu üç moddan biriyle ölçer:
pixels: Kaydırma miktarının doğrudan piksel cinsinden hesaplandığı moddur. Özellikle hassas kaydırma yapabilen dokunmatik yüzeylerde ve modern farelerde yaygındır.lines: Kaydırma miktarının metin satırı bazında hesaplandığı moddur. Geleneksel kademeli fare tekerleklerinde her bir dişli tıkı genellikle belirli sayıda satıra karşılık gelir.pages: Tekerlek hareketinin doğrudan tam bir sayfa kaydırmaya ayarlandığı durumlarda kullanılan moddur.
Aynı fiziksel tekerlek hareketi, farklı tarayıcılarda veya işletim sistemlerinde farklı delta sayıları üretebilir. Örneğin, bir tarayıcı tek bir dişli tıkını lines modunda raporlarken, diğeri bunu doğrudan piksel değerine dönüştürerek pixels modunda raporlayabilir. Bu nedenle donanım testi yaparken ham delta sayısal değerlerini karşılaştırmak yerine, tekerleğin dönüş yönünü ve her tıkta istikrarlı bir şekilde olay tetiklenip tetiklenmediğini kontrol etmek gerekir.
Fare Tuşu Testi Nasıl Kullanılır?
Fare Tuşu Testi, farenizin tüm fiziksel tuşlarını ve kaydırma tekerleğini test etmenizi sağlayan tarayıcı tabanlı bir araçtır. Test işlemi tamamen kullanıcının tarayıcısında gerçekleşir; hiçbir fare girdisi veya koordinat verisi dış sunuculara gönderilmez veya kaydedilmez.
Test Aşamaları
- Giriş: Sayfa açıldığında durum göstergesinde
Başlamak için test alanında tıklayın veya kaydırıniletisi görüntülenir. Test alanına giriş yapıldığında sistemFare girdisi bekleniyordurumuna geçer. - Etkileşim: Fare imlecini "Fare test alanı" yazan panelin içine getirin. Burada sol tık, sağ tık, orta tık (tekerlek tuşu) yapabilir, varsa yan tuşlara (
Geriveİleri) basabilir ve tekerleği döndürebilirsiniz. - İstatistikleri İzleme: Panel üzerinde bulunan görsel göstergeler sayesinde hangi tuşların test edildiğini görebilirsiniz:
Basılı: O anda fiziksel olarak basılı tutulan tuşları gösterir.Test edildi: Sayfa açıldığından beri en az bir kez basılmış ve çalışmış tuşları gösterir.Çift tetiklendi: Çift tıklama hatası veren tuşları kırmızı renkle işaretler.
- Verileri İnceleme: Sayfanın altındaki tablolarda her bir tuşun toplam basış sayısı, iki basış arasındaki milisaniye cinsinden en kısa süre (
Min aralık) ve detaylı olay geçmişi listelenir.
Çift Tetikleme Eşiği Ayarı
Araçta varsayılan olarak 40 ms (milisaniye) olarak ayarlanmış bir çift tetikleme eşiği bulunur. Eğer aynı tuşa ardışık olarak bu süreden daha kısa bir aralıkla basılırsa, sistem bunu donanımsal bir hata (chattering) olarak kabul eder ve ilgili satıra Çift tetiklendi rozetini ekler. Sağlıklı bir insan parmağı fiziksel olarak iki tıklama arasını bu kadar kısa bir süreye indiremeyeceği için, bu eşik içindeki ardışık sinyaller doğrudan donanım aşınmasına işaret eder.
Sıkça Sorulan Sorular
Fareme bir kez bastığımda çift tıklıyor — bu test bunu doğrulayabilir mi?
Evet. Şüpheli tuşa tek tek ve bilinçli tıklamalarla basın: Her basışta tam olarak bir adet Basıldı ve bir adet Bırakıldı olayı günlüğe kaydedilmelidir. İşaretleme penceresinin (varsayılan olarak 40 ms) içine düşen fazladan bir basış, çift tetikleme olarak işaretlenir ve sayılır — ardı ardına gelen basışlarda bu kalıp, yazılımdan değil, aşınmış bir anahtardan kaynaklanır. Sağlıklı bir tuş elle neredeyse hiçbir zaman bu kadar hızlı iki kez tetiklenmez, bu nedenle pencereyi yalnızca bilerek olağanüstü hızlı tıklıyorsanız genişletin.
Test alanında sağ tık menüsü neden açılmıyor?
Sağ tıklamaların diğer tuşlar gibi sayılabilmesi için bu alan bağlam menüsünü engeller; alanın dışında menü her zamanki gibi çalışır. Sayfanın geçersiz kılamayacağı iki istisna vardır: Firefox'ta Shift + sağ tık her zaman menüyü açar ve sayılmaz; Mac'te ise Ctrl + tıklama tasarım gereği sağ tık olarak algılanır.
Yan tuşlarım neden algılanmıyor?
Birçok tarayıcı, geçmişte gezinme için Geri ve İleri tuşlarını sahiplenir ve bazıları sayfa basışı göremeden önce bunları yakalar — bu test alanı, tarayıcının izin verdiği yerlerde bunu engeller ancak her yerde değil. Linux üzerindeki Firefox yan tuşları hiç bildirmeyebilir. Eğer burada hiç algılanmıyor ancak diğer uygulamalarda çalışıyorlarsa, tarayıcı bunları engellemiştir; bu durum farenin bozuk olduğunu göstermez.
Aynı kaydırma hareketi başka bir tarayıcıda neden farklı delta sayıları gösteriyor?
Kaydırma miktarları tarayıcıya ve platforma bağlı olarak pixels, lines veya pages cinsinden gelir ve gösterge her olayın hangi birimi kullandığını etiketler. Aynı dişli tıkı için bir pixel değeri her zaman bir line değerinden çok daha büyüktür. Tarayıcılar arasında ham delta sayılarını değil, kaydırma yönünü ve adım sayılarını karşılaştırın.