鍵盤測試工具是否準確,取決於它為每一次按鍵回報的值——也就是 keycodekeyCode——是否與您的作業系統和瀏覽器實際從硬體接收到的內容一致。 在這個語境下,「準確」涵蓋三個層次:按鍵是否確實被記錄、是否顯示正確的字元或名稱,以及鍵盤上的實體位置是否與鍵帽上的標籤對應。基於瀏覽器的鍵盤測試工具能在同一個畫面上、同時回答這三個問題,方法是直接在頁面中監聽鍵盤事件。由於偵測發生在您的瀏覽器本地端,結果不會經過雲端處理或第三方驅動程式的篩選——頁面所看到的事件流,與您的作業系統轉發給任何其他應用程式的事件流完全相同。正是這條直接的路徑賦予了線上鍵盤測試它的準確性,也正是為什麼一個能同時回報 key、code 與 keyCode 的測試工具,會比只能讓按鍵亮燈的工具更值得信賴。

人們搜尋「鍵盤測試準確度」的原因,通常落在以下三種情境之一:他們已經跑過一次測試,但不確定結果是否可信;他們在提出保固申請之前需要故障的證明;或者他們想了解一個免費的瀏覽器工具是否能達到付費診斷工具的精確度。這些疑慮各自都有對應的答案,就藏在測試結果之中,而本文的其餘部分將帶領您有把握地解讀這些結果。

keyboard tester accuracy
鍵盤測試的準確度:如何正確解讀結果

在鍵盤測試中,「準確」代表什麼

一項準確的鍵盤測試,會針對鍵盤上的每一顆按鍵回答四個不同的問題:

  • 該按鍵是否確實被記錄? 只有在瀏覽器接收到該按鍵的 keydown 事件時,畫面上的對應按鍵才會亮起。
  • 它產生了什麼字元? key 值顯示該次按鍵的結果——例如字母 a,或在按住 Shift 時顯示 A
  • 這顆按鍵在實體上位於哪裡? code 值回報的是固定的實體位置——KeyA 在任何鍵盤配列下都會保持為 KeyA
  • 這次按鍵是否會在較舊的軟體中被記錄? keyCode 是遊戲和舊版應用程式仍在使用的數字識別碼。

只要這四個答案中有任何一個錯誤,該按鍵的測試結果就是不準確的。一個只能顯示某顆按鍵是否亮起的測試工具——卻不揭露背後的事件值——可能會把重新對應的問題、配列不符或驅動程式問題,藏在一盞綠燈之後。把這三個值同時顯示出來,才能把一個單純的亮燈測試,變成您能據以採取行動的量測結果。

解讀 key、code 與 keyCode 的值

在「最近一次按鍵」面板中顯示的三個值,來自同一個鍵盤事件,但回答的卻是不同的問題。下表是在測試過程中,最快釐清三者差異的方式。

顯示內容在以下情況下保持不變……
key該按鍵產生的字元或名稱(a、A、ArrowUp、Enter)配列或修飾鍵變更時——因此它會隨之改變
code該按鍵在鍵盤上的實體位置(KeyA、Space、ArrowUp)配列或語言變更時——因此它保持固定
keyCode某些遊戲和舊版軟體仍在使用的較舊數字識別碼配列變更時——為了向後相容而保留

如果您正在偵錯一個重新對應的問題,通常最值得信賴的是 code,因為它會忽略您作業系統的配列設定。如果您要確認輸出的是否為正確的字元,則應讀取 key。如果某個遊戲或舊版應用程式持續忽略某次按鍵,最快的釐清方式就是比較它預期的 keyCode 與瀏覽器實際回報的值之間的落差。

用五個步驟執行一項準確的鍵盤測試

若要得到值得信賴的測試結果,畫面上的鍵盤必須在整個測試過程中保持聚焦。以下是能產生最乾淨輸出的程序。

  1. 點擊或以 Tab 鍵切換到 畫面上的鍵盤測試工具,使其成為作用中狀態並開始擷取您的按鍵動作。
  2. 逐一按下鍵盤上的每一顆實體按鍵,並觀察畫面上對應的按鍵亮起,並保持標示為已測試。
  3. 讀取「最近一次按鍵」面板,檢查您剛才按下的按鍵所回報的 key、code 與 keyCode 值。
  4. 找出任何在您按下後從未亮起的畫面按鍵——這些很可能就是失效或故障的按鍵。
  5. 當您想重新進行一輪測試時,點擊 Reset 以清除所有已測試的標記以及最近一次按鍵的讀值。

以上五個步驟,各自對應到前面提到的準確度問題之一:聚焦處理偵測問題、逐一按鍵能隔離每一顆按鍵、最近一次按鍵面板會揭露三個值、未被點亮的按鍵能用來標記硬體故障,而重置則讓您能在修復後重新驗證。

為什麼有些按鍵不會亮起(以及其意義)

在您按下某顆按鍵後,畫面上沒有亮起,並不總是代表鍵盤損壞。首先要檢查的是畫面上的鍵盤是否仍處於聚焦狀態——如果您在測試過程中點擊到了別的分頁、文字欄位或瀏覽器的網址列,頁面就會停止監聽,該次按鍵就被送往其他地方了。請切換回該鍵盤配列所在的分頁,再次按下可疑的按鍵以確認。

如果該按鍵仍然沒有亮起,下一步要檢查的是這次按鍵是否在瀏覽器看到之前就被攔截了。某些筆記型電腦的 Fn 組合鍵、多媒體鍵以及特定的鎖定鍵,會在應用程式收到之前就先被作業系統或韌體處理掉,因此瀏覽器永遠不會收到可以回報的事件。在一般的文字欄位中測試同一顆按鍵,是一個有用的對照方式:如果在那裡能正常輸入,表示硬體沒問題,限制出在瀏覽器能看見的範圍。如果在文字欄位中也無法輸入,則很可能是開關本身骯髒、磨損或接觸不良。

第三種情境出現在按鍵產生錯誤字元時。如果您按下標示為 Y 的按鍵,但畫面上的亮點落在 Z,那麼問題通常出在作業系統的配列或重新對應設定,而不是按鍵本身損壞。這時 code 值仍然會讀為 KeyY,而 key 值則會讀為 z,這個不一致正是設定問題的特徵,而非硬體問題。

檢查 Rollover 與鬼鍵以獲得準確的結果

準確度不僅關乎單顆按鍵——也關乎多顆按鍵同時被按下時會發生什麼情況。鬼鍵(ghosting)是一種故障模式:在某些組合下,某些按鍵會被無聲地忽略,這在快節奏的遊戲中最為常見。若要準確地進行測試,請同時按住兩到三顆按鍵,並觀察畫面上有哪些按鍵亮起。每一顆在實體上被按下的按鍵都應該亮起;任何一顆在特定組合下保持不亮的情況,都代表該鍵盤或其控制器的 rollover 上限。

畫面上的亮點之所以有用,是因為被按住的按鍵會在按住期間持續發光,直到瀏覽器接收到對應的 keyup 事件才會釋放。如果在您仍然按住實體按鍵時,亮點卻消失了,這代表該次按鍵可能是在韌體層級被捨棄,或是遭到作業系統的篩選。重複同樣的組合幾次,可以確認這個現象是否一致(屬於真實的硬體限制)或是偶發(屬於連線或干擾問題,在無線鍵盤上很常見)。

影響測試準確度的因素

即使工具本身運作正常,仍有若干情況會使測試結果較不可靠。在執行測試時將這些因素放在心上,就能把一次簡單的檢查變成可靠的量測。

  • 失焦。 任何把作用中的元素從畫面上的鍵盤移開的行為,都會中斷偵測。在測試過程中點擊別的分頁、網址列或其他視窗,都會在無聲中漏掉按鍵。
  • 作業系統層級的快捷鍵。 全域快捷鍵、Windows 鍵組合以及部分 Fn 層,會在瀏覽器看到之前就被攔截,因此永遠不會為頁面產生事件。
  • 瀏覽器差異。 所有現代瀏覽器所提供的鍵盤事件大致相同,但有少數邊緣案例的按鍵在 Chrome 與 Firefox 中的行為略有不同。在兩個瀏覽器中執行同一輪測試,是區分瀏覽器特性與硬體故障的快速方法。
  • 無線干擾。 在高負載下會漏掉按鍵的無線鍵盤,在同時按鍵測試中看起來會像是鬼鍵。如果您懷疑是這個原因,請改用有線連接,或將接收器移近一些,然後重新執行測試。
  • 配列設定。 使用 Dvorak 或非美式配列會改變 key 值,但不會影響 code 值。如果畫面上亮起的位置與您預期的字元不符,請先檢查配列設定,再假設是故障。

測試之後:確認結果

準確的測試結果是可以被重複的。在第一輪測試完成後,請點擊 Reset 來清除所有已測試的標記以及最近一次按鍵的讀值,然後再進行第二輪測試。在兩輪中都能亮起的按鍵,即確認為運作正常;在兩輪中始終保持暗色的按鍵,則確認為失效或受限,值得進一步調查——先從清潔鍵帽下方開始,接著檢查驅動程式與韌體,最後才考慮更換硬體。如果您發現某些按鍵只在組合按壓時失效、單按時正常,那麼 完整的失效按鍵排查指南涵蓋了更深入的復原步驟,例如重新插拔排線以及在另一台機器上測試。

正是「三個回報值、聚焦的擷取介面,以及可重複的兩輪測試流程」這三者的結合,賦予了基於瀏覽器的鍵盤測試它的準確度。一旦這些條件都到位,您就能有把握地判斷一把鍵盤是完全正常、有單一失效按鍵,或是已經觸及了它 rollover 硬體的上限。

如果您正在權衡各種選項,選擇正確的多計數器比較方法對此有詳細說明。