കീബോർഡ് ഇവന്റുകളും വെബ് ഡെവലപ്മെന്റും
വെബ് ആപ്ലിക്കേഷനുകളിലും ബ്രൗസർ അധിഷ്ഠിത ഗെയിമുകളിലും കീബോർഡ് ഇൻപുട്ടുകൾ കൃത്യമായി കൈകാര്യം ചെയ്യുന്നത് ഡെവലപ്പർമാരെ സംബന്ധിച്ച് വളരെ പ്രധാനപ്പെട്ട ഒന്നാണ്. ആധുനിക ബ്രൗസറുകൾ കീബോർഡ് ഇവന്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനായി പ്രധാനമായും KeyboardEvent.key, KeyboardEvent.code എന്നീ പ്രോപ്പർട്ടികളാണ് ഉപയോഗിക്കുന്നത്. ഇതിനുപുറമേ പഴയ ബ്രൗസറുകൾക്കായി ലെഗസി keyCode പ്രോപ്പർട്ടിയും നിലവിലുണ്ട്.
ഈ പ്രോപ്പർട്ടികൾ തമ്മിൽ വ്യക്തമായ വ്യത്യാസങ്ങളുണ്ട്. KeyboardEvent.key എന്നത് ഉപയോക്താവ് അമർത്തുന്ന കീയുടെ നിലവിലെ ക്യാരക്ടർ വാല്യൂവിനെയാണ് സൂചിപ്പിക്കുന്നത്. എന്നാൽ KeyboardEvent.code എന്നത് കീബോർഡിലെ ആ കീയുടെ ഫിസിക്കൽ സ്ഥാനത്തെയാണ് അടയാളപ്പെടുത്തുന്നത്. ഉദാഹരണത്തിന്, കീബോർഡിലെ ഒരു പ്രത്യേക കീ അമർത്തുമ്പോൾ ലഭിക്കുന്ന ഔട്ട്പുട്ട് സിസ്റ്റത്തിലെ ഭാഷാ ക്രമീകരണങ്ങൾക്കും മോഡിഫയർ കീകൾക്കും അനുസരിച്ച് മാറുമെങ്കിലും, അതിന്റെ ഫിസിക്കൽ ലൊക്കേഷൻ കോഡ് എപ്പോഴും ഒരേപോലെ തുടരുന്നു. വെബ് ഇൻപുട്ട് എപിഐകളുടെ (Web Input APIs) പരിണാമം പഴയ ലെഗസി കീ ഡിറ്റക്ഷൻ രീതികളിൽ നിന്നും ഇത്തരം ആധുനികവും സ്റ്റാൻഡേർഡൈസ് ചെയ്തതുമായ കീബോർഡ് എപിഐകളിലേക്കുള്ള മാറ്റം എളുപ്പമാക്കിയിട്ടുണ്ട്.
ഫിസിക്കൽ ലേഔട്ടും സോഫ്റ്റ്വെയർ മാപ്പിംഗും
കീബോർഡിന്റെ ഫിസിക്കൽ ലേഔട്ടും കമ്പ്യൂട്ടറിലെ സോഫ്റ്റ്വെയർ മാപ്പിംഗും തമ്മിലുള്ള ബന്ധം മനസ്സിലാക്കുന്നത് ഹാർഡ്വെയർ പരിശോധന കൂടുതൽ എളുപ്പമാക്കും. ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലെ ഭാഷാ ക്രമീകരണങ്ങൾ മാറ്റുന്നതിലൂടെയോ കീബോർഡ് ലേഔട്ട് മാറ്റുന്നതിലൂടെയോ ഇൻപുട്ട് വാല്യൂകളിൽ വ്യത്യാസം വരുത്താൻ സാധിക്കും.
- ഡൈനാമിക് കീ വാല്യൂകൾ: സജീവമായ മോഡിഫയറുകൾ (ഉദാഹരണത്തിന് Shift അല്ലെങ്കിൽ Caps Lock), നിലവിലെ ഭാഷാ ലേഔട്ട് എന്നിവയെ അടിസ്ഥാനമാക്കി "കീ" വാല്യൂ മാറിക്കൊണ്ടിരിക്കുന്നു. ഒരേ ഫിസിക്കൽ കീ അമർത്തുമ്പോൾ തന്നെ "a" അല്ലെങ്കിൽ "A" എന്നിങ്ങനെ വ്യത്യസ്ത ഔട്ട്പുട്ടുകൾ ലഭിക്കുന്നത് ഇതുകൊണ്ടാണ്.
- സ്റ്റാറ്റിക് കോഡ് വാല്യൂകൾ: കീബോർഡ് ബോർഡിലെ കീയുടെ ഫിസിക്കൽ സ്ഥാനം എപ്പോഴും സ്ഥിരമായിരിക്കും. "KeyA", "ShiftLeft", "Space" തുടങ്ങിയ കോഡ് വാല്യൂകൾ ലേഔട്ട് മാറിയാലും ഒരിക്കലും മാറില്ല.
ഈ വ്യത്യാസം തിരിച്ചറിയുന്നത് വഴി കീബോർഡിലെ തകരാറുകൾ സോഫ്റ്റ്വെയർ ക്രമീകരണങ്ങൾ കൊണ്ടാണോ അതോ യഥാർത്ഥ ഹാർഡ്വെയർ പ്രശ്നങ്ങൾ കൊണ്ടാണോ എന്ന് കൃത്യമായി മനസ്സിലാക്കാൻ സാധിക്കും.
കീബോർഡ് ഹാർഡ്വെയർ തകരാറുകൾ കണ്ടെത്തൽ
മെക്കാനിക്കൽ അല്ലെങ്കിൽ മെംബ്രേൻ സ്വിച്ചുകളുള്ള കീബോർഡുകളിൽ കാലപ്പഴക്കം കൊണ്ടോ മറ്റ് കാരണങ്ങൾ കൊണ്ടോ തകരാറുകൾ സംഭവിക്കാറുണ്ട്. ഇവന്റ് ലോഗുകൾ പരിശോധിക്കുന്നതിലൂടെ ഇത്തരം പ്രശ്നങ്ങൾ എളുപ്പത്തിൽ കണ്ടെത്താം.
- കീ ചാറ്ററിംഗ് (ഡബിൾ-ടൈപ്പിംഗ്): ഒരു കീയിൽ ഒരു തവണ മാത്രം അമർത്തുമ്പോൾ സ്വിച്ചിന്റെ തകരാർ കാരണം ഒന്നിലധികം തവണ പ്രസ്സ് ഇവന്റുകൾ രജിസ്റ്റർ ചെയ്യപ്പെടുന്ന അവസ്ഥയാണിത്.
- ഡെഡ് കീകൾ: കീബോർഡിലെ ചില കീകൾ അമർത്തുമ്പോൾ യാതൊരുവിധ സിഗ്നലുകളും ബ്രൗസറിലേക്ക് എത്താതിരിക്കുകയും ഇവന്റ് ലോഗിൽ രേഖപ്പെടുത്താതിരിക്കുകയും ചെയ്യുന്ന അവസ്ഥ.
- കീ ഗോസ്റ്റിംഗ്: ഒരേസമയം ഒന്നിലധികം കീകൾ അമർത്തിപ്പിടിക്കുമ്പോൾ ചില കീകൾ സിഗ്നൽ അയയ്ക്കുന്നതിൽ പരാജയപ്പെടുന്ന അവസ്ഥയാണിത്.
ഇവന്റ് ലോഗിലെ ഡൗൺ, അപ്പ് ഇവന്റുകളുടെ കൃത്യമായ സമയക്രമം നിരീക്ഷിക്കുന്നതിലൂടെ സ്വിച്ചുകൾക്ക് തേയ്മാനമുണ്ടോ എന്ന് ഉറപ്പിക്കാം.
ബ്രൗസർ ഇവന്റ് തടസ്സപ്പെടൽ
കീബോർഡ് പരിശോധിക്കുമ്പോൾ ചില പ്രത്യേക കീ കോമ്പിനേഷനുകൾ പേജിൽ രജിസ്റ്റർ ചെയ്യപ്പെടാതെ പോകുന്നത് സാധാരണയാണ്. ബ്രൗസറോ ഓപ്പറേറ്റിംഗ് സിസ്റ്റമോ ചില ഷോർട്ട്കട്ടുകൾ സ്വന്തം ആവശ്യങ്ങൾക്കായി മാറ്റിവെച്ചിട്ടുള്ളതിനാലാണ് ഇത് സംഭവിക്കുന്നത്.
ടാബുകൾ മാറുന്നത്, വിൻഡോകൾ ക്ലോസ് ചെയ്യുന്നത്, ഫുൾ-സ്ക്രീൻ മോഡിലേക്ക് മാറുന്നത് അല്ലെങ്കിൽ സിസ്റ്റം സെർച്ച് ഓപ്പൺ ചെയ്യുന്നത് തുടങ്ങിയ കമാൻഡുകൾ വെബ് പേജിലേക്ക് എത്തുന്നതിന് മുൻപ് തന്നെ സിസ്റ്റം തടയുന്നു. അതിനാൽ ഇത്തരം കീകൾ ഒരുമിച്ച് അമർത്തുമ്പോൾ ടൂളിൽ ഇവന്റുകൾ കാണിക്കില്ല. ഇവയുടെ പ്രവർത്തനം ഉറപ്പാക്കാൻ ഓരോ കീയും പ്രത്യേകം പ്രത്യേകമായി അമർത്തി പരിശോധിക്കേണ്ടതുണ്ട്.
മൊബൈൽ ബ്രൗസറുകളിലെ ഇൻപുട്ട് വെല്ലുവിളികൾ
മൊബൈൽ ഫോണുകളിലെയും ടാബ്ലെറ്റുകളിലെയും വെർച്വൽ അല്ലെങ്കിൽ ഓൺ-സ്ക്രീൻ കീബോർഡുകൾ ഫിസിക്കൽ കീബോർഡുകളിൽ നിന്നും തികച്ചും വ്യത്യസ്തമായാണ് പ്രവർത്തിക്കുന്നത്. ആൻഡ്രോയിഡ് പോലുള്ള മൊബൈൽ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലെ വെർച്വൽ കീബോർഡുകൾ പലപ്പോഴും കൃത്യമായ കീ വാല്യൂകൾക്ക് പകരം പൊതുവായ ഇവന്റുകൾ മാത്രമാണ് അയയ്ക്കുന്നത്.
ഇത് ബ്രൗസർ റിപ്പോർട്ടുകളിൽ "Unidentified" എന്ന രീതിയിൽ വാല്യൂകൾ കാണിക്കാൻ കാരണമാകുന്നു. മൊബൈൽ ബ്രൗസറുകളിലെ ഇത്തരം ഇൻപുട്ട് പരിമിതികൾ മറികടക്കാൻ പ്രത്യേകമായി നൽകിയിട്ടുള്ള ഇൻപുട്ട് ഫീൽഡുകൾ ഉപയോഗിച്ച് ടൈപ്പ് ചെയ്ത് പരിശോധിക്കേണ്ടതുണ്ട്.
ടൂൾ ഉപയോഗിക്കേണ്ട രീതിയും സവിശേഷതകളും
ഈ ഓൺലൈൻ ടൂൾ ഉപയോഗിച്ച് കീബോർഡിന്റെ ഫിസിക്കൽ പ്രവർത്തനവും സാങ്കേതിക ഇവന്റ് കോഡുകളും എളുപ്പത്തിൽ പരിശോധിക്കാം.
ഇൻപുട്ട് രീതികൾ
- ഫിസിക്കൽ കീ പ്രസ്സുകൾ: പേജിൽ എവിടെയെങ്കിലും കീ അമർത്തുമ്പോൾ തന്നെ വിവരങ്ങൾ സ്വയമേവ രേഖപ്പെടുത്തുന്നു.
- ഫോക്കസ്ഡ് കീബോർഡ് ക്യാപ്ചർ: സ്ക്രീനിലെ കീബോർഡ് മാപ്പിൽ നേരിട്ട് ക്ലിക്ക് ചെയ്യുന്നതിലൂടെ Space, Tab, ഫംഗ്ഷൻ കീകൾ എന്നിവ ബ്രൗസറിന്റെ ഡിഫോൾട്ട് ആക്ഷനുകൾ ഒഴിവാക്കി പരിശോധിക്കാം (Esc അമർത്തിയാൽ ഇത് റിലീസ് ചെയ്യാം).
- ഓൺ-സ്ക്രീൻ കീബോർഡ് ഇൻപുട്ട്: മൊബൈൽ അല്ലെങ്കിൽ വെർച്വൽ കീബോർഡുകൾ പരിശോധിക്കാൻ നൽകിയിട്ടുള്ള പ്രത്യേക ഇൻപുട്ട് ഫീൽഡ് ഉപയോഗിക്കാം.
ഔട്ട്പുട്ട് വിവരങ്ങൾ
ഏറ്റവും പുതിയ കീ ഇവന്റ് വിഭാഗത്തിൽ താഴെ പറയുന്ന വിവരങ്ങൾ തത്സമയം കാണാം:
- കീ
- കോഡ്
- ലെഗസി keyCode
- ലൊക്കേഷൻ ("സ്റ്റാൻഡേർഡ്", "ഇടത്", "വലത്", അല്ലെങ്കിൽ "നംപാഡ്" എന്ന് കാണിക്കുന്നു)
- മോഡിഫയറുകൾ ("ഒന്നുമില്ല", അല്ലെങ്കിൽ സജീവമായ "Shift", "Ctrl", "Alt", "Meta", "Caps Lock" എന്നിവ കാണിക്കുന്നു)
- ഡൗൺ / അപ്പ് ബാഡ്ജ് ഒപ്പം കീ അമർത്തിപ്പിടിക്കുമ്പോൾ ഉണ്ടാകുന്ന ഓട്ടോ-റിപ്പീറ്റ് ഇവന്റുകൾ എണ്ണാൻ ആവർത്തനം ×
{count}ബാഡ്ജും ഉണ്ട്.
കൂടാതെ, പരിശോധിച്ച കീകളുടെ എണ്ണം, ആകെ അമർത്തിയത്, ഇപ്പോൾ അമർത്തിപ്പിടിച്ചിരിക്കുന്നത് എന്നീ സ്ഥിതിവിവരക്കണക്കുകളും ഇതിലൂടെ ലഭിക്കും.
ഡാറ്റാ പ്രൊസസ്സിംഗും സ്വകാര്യതയും
ഈ ടൂളിൽ കീ അമർത്തലുകൾ പ്രൊസസ്സ് ചെയ്യുന്നത് പൂർണ്ണമായും ഉപയോക്താവിന്റെ ബ്രൗസറിൽ പ്രാദേശികമായി (locally) മാത്രമാണ്. ഇവന്റ് വിവരങ്ങളും പേജിലെ ലോഗും കാണിക്കാൻ മാത്രമാണ് ഈ പേജ് കീ അമർത്തലുകൾ റീഡ് ചെയ്യുന്നത്. യാതൊരുവിധ വിവരങ്ങളും ബാഹ്യ സെർവറുകളിലേക്ക് അപ്ലോഡ് ചെയ്യുകയോ സൂക്ഷിക്കുകയോ ചെയ്യുന്നില്ല. ലോഗ് മായ്ക്കുകയോ പേജിൽ നിന്ന് പോകുകയോ ചെയ്യുന്നത് വഴി എല്ലാ വിവരങ്ങളും പൂർണ്ണമായി ഇല്ലാതാകും.
പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ (FAQ)
key, code വാല്യൂകൾ തമ്മിലുള്ള വ്യത്യാസം എന്താണ്?
key വാല്യൂ എന്നത് ആ കീ അമർത്തുമ്പോൾ ഇപ്പോൾ ലഭിക്കുന്ന അക്ഷരമോ പ്രവൃത്തിയോ ആണ് — ഇത് നിങ്ങളുടെ ലേഔട്ടിനും മോഡിഫയറുകൾക്കും അനുസരിച്ച് മാറുന്നു, അതിനാൽ ഒരേ ഫിസിക്കൽ കീ തന്നെ "a" അല്ലെങ്കിൽ "A" എന്ന് കാണിക്കാം, അല്ലെങ്കിൽ മറ്റൊരു ഭാഷാ ലേഔട്ടിൽ തികച്ചും വ്യത്യസ്തമായ ഒരു അക്ഷരം കാണിക്കാം. code വാല്യൂ എന്നത് കീയുടെ ഫിസിക്കൽ സ്ഥാനത്തെ (KeyA, ShiftLeft, Space) സൂചിപ്പിക്കുന്നു, ഇത് ഒരിക്കലും മാറില്ല, അതുകൊണ്ടാണ് ഗെയിമുകളും ആപ്പുകളും അവയുടെ ഷോർട്ട്കട്ടുകൾ code-ലേക്ക് ബൈൻഡ് ചെയ്യുന്നത്.
എന്റെ ഫോണിലെ കീബോർഡ് “Unidentified” എന്ന് കാണിക്കുന്നത് എന്തുകൊണ്ടാണ്?
ഓൺ-സ്ക്രീൻ കീബോർഡുകൾ — പ്രത്യേകിച്ച് Android-ൽ — പലപ്പോഴും യഥാർത്ഥ key വാല്യൂകൾ ഇല്ലാതെ പൊതുവായ ഇവന്റുകൾ അയയ്ക്കുന്നു, ബ്രൗസർ റിപ്പോർട്ട് ചെയ്യുന്നത് മാത്രമേ പേജിന് കാണിക്കാൻ കഴിയൂ. നിങ്ങളുടെ കീബോർഡ് എന്താണ് അയയ്ക്കുന്നത് എന്ന് കാണാൻ ലേഔട്ടിന് താഴെയുള്ള ഓൺ-സ്ക്രീൻ കീബോർഡ് ചെക്ക് തുറക്കുക; ഒരു എക്സ്റ്റേണൽ അല്ലെങ്കിൽ ലാപ്ടോപ്പ് കീബോർഡ് പൂർണ്ണ വിവരങ്ങൾ റിപ്പോർട്ട് ചെയ്യും.
ഞാൻ അമർത്തിപ്പിടിക്കുമ്പോൾ ഒരു കീ വീണ്ടും വീണ്ടും പ്രവർത്തിക്കുന്നു — അതിന് തകരാറുണ്ടോ?
അല്ല. ഒരു കീ അമർത്തിപ്പിടിക്കുന്നത് സിസ്റ്റം ആവർത്തിച്ചുള്ള പ്രസ്സ് ഇവന്റുകൾ അയയ്ക്കാൻ കാരണമാകുന്നു, ഇത് ഇവിടെ ഒരു Repeat ബാഡ്ജും കൗണ്ടറും ഉപയോഗിച്ച് കാണിക്കുന്നു — അത് സാധാരണ ഓട്ടോ-റിപ്പീറ്റ് ആണ്. യഥാർത്ഥ തകരാറിന്റെ ലക്ഷണങ്ങൾ ഇതിന് വിപരീതമാണ്: ഒരു തവണ മാത്രം വേഗത്തിൽ ടാപ്പ് ചെയ്യുമ്പോൾ ഒന്നിലധികം ഇവന്റുകൾ ഉണ്ടാകുക, അല്ലെങ്കിൽ ടാപ്പ് ചെയ്യുമ്പോൾ ഒന്നും സംഭവിക്കാതിരിക്കുക, ഇത് കേടായതോ ഒട്ടിപ്പിടിക്കുന്നതോ ആയ സ്വിച്ചിനെ സൂചിപ്പിക്കുന്നു.
ചില കീ കോമ്പിനേഷനുകൾ കാണിക്കാത്തത് എന്തുകൊണ്ടാണ്?
ബ്രൗസറോ ഓപ്പറേറ്റിംഗ് സിസ്റ്റമോ മാറ്റിവെച്ചിട്ടുള്ള ഷോർട്ട്കട്ടുകൾ — ടാബുകളും ആപ്പുകളും അടയ്ക്കുകയോ മാറ്റുകയോ ചെയ്യുക, ഫുൾ സ്ക്രീൻ, സിസ്റ്റം സെർച്ച് എന്നിവ — പേജിന് കാണാൻ കഴിയുന്നതിന് മുമ്പ് തന്നെ തടയപ്പെടുന്നു, അതിനാൽ അവ ഒരിക്കലും ഇവിടെ ദൃശ്യമാകില്ല. ആ നിശബ്ദത സാധാരണമാണ്, അല്ലാതെ കീ കേടായതുകൊണ്ടല്ല: അതേ കീകൾ ഓരോന്നായി പരിശോധിക്കുക, അവ ഓരോന്നും സ്വയം രജിസ്റ്റർ ചെയ്യപ്പെടും.