Hiiren kytkinten mekaniikka ja kontaktin värähtely (chattering)
Mekaaniset hiiren kytkimet perustuvat fyysisiin metallikontakteihin, jotka sulkevat sähköpiirin, kun painiketta painetaan. Ajan myötä kytkimen metallijousi ja kontaktipinnat kuluvat, hapettuvat tai menettävät joustavuutensa. Tämä mekaaninen kuluminen aiheuttaa ilmiön nimeltä kontaktin värähtely eli kytkinvärähtely (engl. contact bouncing tai chattering).
Kun kulunutta kytkintä painetaan kerran, sen sisäiset metallipinnat eivät osu toisiinsa tasaisesti, vaan ne saattavat kimmota ja osua toisiinsa useita kertoja mikrosekuntien tai muutaman millisekunnin sisällä. Ohjelmisto tai laiteohjelmisto pyrkii suodattamaan nämä ylimääräiset kontaktit pois niin sanotun värähtelyn vaimennuksen (debouncing) avulla. Jos kytkimen vaurio on edennyt liian pitkälle tai värähtely kestää pidempään kuin laitteiston suodatusikkuna, tietokone rekisteröi yhden fyysisen painalluksen kahdeksi tai useammaksi erilliseksi klikkaukseksi. Tämä työkalu auttaa havaitsemaan nämä laitteistotason viat mittaamalla painallusten välistä tarkkaa aikaa.
Testialueen toiminta ja syötteiden käsittely
Työkalun ytimessä on määritetty Testialue, joka toimii hiiren syötteiden vastaanottimena. Kun osoitin siirretään tämän alueen sisäpuolelle, työkalu alkaa seurata ja analysoida laitteiston lähettämiä tapahtumia reaaliajassa.
Käyttöliittymässä on kaksi tilaa ilmaisevaa ilmoitusta:
- Ennen ensimmäistä syötettä näytetään tila:
Aloita klikkaamalla tai rullaamalla testialueella. - Kun hiiren toiminta havaitaan, tila muuttuu muotoon:
Kuunnellaan hiiren syötettä.
Jotta testaus olisi mahdollisimman tarkkaa, testialue kaappaa ja estää tietyt käyttöjärjestelmän ja selaimen vakiotoiminnot. Alueen sisällä hiiren kakkospainikkeen normaali pikavalikko on estetty, jotta oikean painikkeen klikkaukset voidaan rekisteröidä ja laskea vapaasti. Samoin keskipainikkeen automaattinen vieritystoiminto sekä sivupainikkeiden oletusarvoiset selainnavigoinnit on estetty. Testialueen ulkopuolella kaikki nämä toiminnot ja hiiren painikkeet toimivat täysin normaalisti.
Kaksoispainallusten tunnistus ja säännöt
Työkalu käyttää säädettävää aikarajaa (oletuksena 40 ms) havaitakseen vialliset kaksoispainallukset. Jos saman painikkeen kaksi peräkkäistä painallusta tapahtuu nopeammin kuin asetettu millisekuntiraja, työkalu tulkitsee tapahtuman kytkimen sähköiseksi värähtelyksi eli kaksoisrekisteröinniksi. Terve kytkin ei mekaanisesti pysty suoriutumaan näin nopeista peräkkäisistä painalluksista pelkällä sormivoimalla tehdyllä klikkauksella.
Tunnistuksessa on otettava huomioon seuraavat käyttöjärjestelmä- ja selainkohtaiset poikkeukset:
- Firefox ja Shift-painike: Firefox-selaimessa näppäinyhdistelmä
Shift + hiiren kakkospainikeohittaa aina sivuston estot ja avaa selaimen oman pikavalikon. Tätä painallusta työkalu ei pysty rekisteröimään. - macOS ja Control-näppäin: macOS-käyttöjärjestelmässä yhdistelmä
Ctrl + klikkauson suunniteltu rekisteröitymään suoraan hiiren kakkospainikkeen painalluksena. - Sivupainikkeiden kaappaus: Vaikka työkalu pyrkii estämään sivupainikkeiden (kuten Taakse ja Eteen) oletustoiminnot, jotkin käyttöjärjestelmät tai selaimet – kuten Firefox Linux-alustalla – saattavat kaapata nämä painallukset kokonaan ennen kuin ne saavuttavat verkkosivun. Tällöin painallukset eivät kirjaudu lokiin.
- Kosketusnäytöt: Kosketusnäytön napautukset rekisteröityvät osoitintyypillä
touch. Painikkeiden ja rullan mekaaninen testaus vaatii kuitenkin fyysisen hiiren tai kosketuslevyn.
Mittaustulokset ja tilastot
Työkalu kerää testauksen aikana tietoja ja esittää ne reaaliajassa useassa eri osiossa.
Tilastopaneeli
Paneeli laskee yhteen seuraavat arvot testijakson ajalta:
Testatut painikkeetPainallukset yhteensäKaksoispainalluksetRullan askeleet
Kaksoispainalluksen tarkistus
Tämä taulukko auttaa yksilöimään, mikä hiiren painikkeista kärsii kytkinviasta. Taulukko sisältää sarakkeet:
PainikePainalluksetMin. väli(ilmoittaa lyhimmän mitatun ajan kahden painalluksen välillä millisekunneissa)
Tapahtumaloki
Jokainen hiiren tekemä toiminto luo uuden rivin tapahtumalokiin. Jos lokissa ei ole vielä tapahtumia, näytetään teksti: Ei vielä hiiritapahtumia – klikkaa tai rullaa testialueella.. Lokitaulukko koostuu seuraavista sarakkeista:
| Sarake | Kuvaus ja mahdolliset arvot |
|---|---|
Aika |
Tapahtuman tarkka rekisteröintiaika. |
Tapahtuma |
Tapahtuman tyyppi: Alas, Ylös, Kaksoisnapsautus tai Rulla. |
Painike |
Tunnistettu painike: Vasen, Oikea, Keski, Taakse, Eteen, Rulla tai tuntemattomille painikkeille Painike {number}. |
Tiedot |
Tarkat tekniset ominaisuudet, kuten Painike, Painikkeet pohjassa (tai Ei mitään), Sijainti (koordinaatit), Rulla (suunta), Väliaika, Kesto pohjassa ja Osoitin (tyyppi: mouse, pen tai touch). |
Jos tapahtuma alittaa määritetyn aikarajan, riville lisätään huomioteksti Kaksoisrekisteröity. Visuaalisessa legendassa käytetään tilamerkintöjä Pohjassa, Testattu ja Kaksois Painallus. Kaikki kerätyt tiedot voidaan poistaa painikkeella Tyhjennä loki.
Vieritystapahtumat ja yksiköt
Hiiren rullan pyörittäminen tuottaa vieritystapahtumia, joiden suunta ilmoitetaan arvoilla Alas, Ylös, Vasemmalle tai Oikealle. Vierityksen voimakkuus eli delta-arvo ilmoitetaan eri yksiköissä riippuen käytetystä selaimesta, käyttöjärjestelmästä ja laitteistoasetuksista.
Yksiköt voivat olla:
pixelslinespages
Koska eri selaimet tulkitsevat rullan pykäliä eri tavoin (esimerkiksi yksi pykälä voi olla toisessa selaimessa 3 riviä ja toisessa 100 pikseliä), laitteiston toimivuutta testatessa on suositeltavaa vertailla rullan askeleita ja pyörityssuuntaa raakojen lukuarvojen sijaan.
Tietosuoja ja tietojen käsittely
Kaikki hiiren painallukset, koordinaatit, rullaukset ja ajoitukset käsitellään paikallisesti suoraan käyttäjän verkkoselaimessa. Mitään syötteitä tai lokitietoja ei lähetetä ulkoisille palvelimille eikä niitä tallenneta pysyvästi. Kun tapahtumaloki tyhjennetään tai selainikkuna suljetaan, kaikki mittaustiedot häviävät lopullisesti.
Usein kysytyt kysymykset
Hiireni tekee kaksoisklikkauksen, kun painan kerran – voiko tämä vahvistaa sen? Kyllä. Paina epäilyttävää painiketta yksittäisillä, harkituilla klikkauksilla: jokaisen painalluksen pitäisi kirjata lokiin tarkalleen yksi Alas ja yksi Ylös. Ylimääräinen painallus, joka osuu tarkistusikkunan sisälle (oletuksena 40 ms), merkitään kaksoisrekisteröinniksi ja lasketaan – jos tämä kuvio toistuu painallus painalluksen jälkeen, kyseessä on kulunut kytkin, ei ohjelmisto. Toimiva painike ei melkein koskaan rekisteröidy kahdesti näin nopeasti käsin painettaessa, joten laajenna ikkunaa vain, jos klikkaat tarkoituksella epätavallisen nopeasti.
Miksi hiiren kakkospainikkeen valikko ei aukea testialueella? Alue estää pikavalikon, jotta hiiren kakkospainikkeen klikkaukset voidaan laskea kuten mikä tahansa muu painike; alueen ulkopuolella valikko toimii normaalisti. Sivusto ei voi ohittaa kahta poikkeusta: Firefox-selaimessa Shift + hiiren kakkospainikkeen klikkaus avaa aina valikon eikä sitä lasketa, ja Mac-tietokoneella Ctrl + klikkaus rekisterötyy suunnitellusti hiiren kakkospainikkeen klikkauksena.
Miksi sivupainikkeeni eivät rekisteröidy? Monet selaimet varaavat Taakse- ja Eteen-painikkeet sivuhistorian selaamiseen, ja jotkut kaappaavat ne ennen kuin sivu ehtii havaita painallusta – tämä testialue estää sen silloin, kun selain sen sallii, mutta ei kaikkialla. Firefox Linux-käyttöjärjestelmässä ei välttämättä raportoi sivupainikkeita lainkaan. Jos ne eivät koskaan rekisteröidy tässä mutta toimivat muissa sovelluksissa, selain on kaapannut ne; kyseessä ei ole rikkinäinen hiiri.
Miksi sama vieritys näyttää eri delta-lukemia toisessa selaimessa? Vieritysmäärät saapuvat yksiköissä pixels, lines tai pages selaimesta ja alustasta riippuen, ja lukema ilmoittaa, mitä yksikköä kukin tapahtuma käytti. Pixel-arvo on aina paljon suurempi kuin line-arvo samalla rullan pykälällä. Vertaa selaimen välillä vierityssuuntaa ja askelmääriä, älä raakoja delta-lukuarvoja.