أداة اختبار لوحة المفاتيح

اضغط أي مفتاح وشاهد تسجيله فوراً — اسم المفتاح ورمزه وسجل مستمر. اكتشف المفاتيح المعطلة أو العالقة أو التي تكتب مرتين خلال ثوانٍ.

981 مشاهدة

انقر هنا واضغط على المفاتيح
 
مفتاح تم اختباره0
إجمالي الضغطات0
 
السجل

كيف تعمل الأداة

يُطلق كل ضغط فعلي على مفتاح زوجاً من أحداث KeyboardEvent في المتصفح: keydown عند الضغط، وkeyup عند الإفلات. يحمل كل حدث معرِّفين مختلفين، والفرق بينهما أهم مما يبدو: key هو الحرف الذي ينتجه تخطيط لوحتك (وهو ما يُكتب فعلياً)، بينما code هو الموضع الفيزيائي للمفتاح على اللوحة، وهو ثابت مهما كان التخطيط النشط. تسجّل هذه الأداة كليهما جنباً إلى جنب مع كل ضغطة.

هذا التمييز هو جوهر اختبار العتاد. تخيّل أنك بدّلت تخطيط لوحة المفاتيح من QWERTY إلى Dvorak وضغطت على المفتاح في الزاوية العلوية اليسرى. تحت QWERTY يُبلّغ هذا المفتاح key: "q"؛ وتحت Dvorak يُبلّغ المفتاح الفيزيائي نفسه key: "'" — لكن في كلتا الحالتين يبقى code دائماً KeyQ، لأن code يصف المفتاح لا الحرف. إذا كنت تحاول معرفة ما إذا كان مفتاح فيزيائي معطلاً أو يهتز، فإن code هو الرقم الذي يقول الحقيقة بصرف النظر عن التخطيط. أما إذا كنت تتحقق من صحة تخطيطك — مثلاً بعد تثبيت تعريف لوحة مفاتيح جديد أو حزمة لغة — فعليك مقارنة ما يُبلّغه key بما تتوقعه من ذلك التخطيط، وهذا سؤال مختلف تماماً.

مع كل ضغطة، تضيء الصفحة فوراً بالحرف أو اسم المفتاح، وتُلحق الرمز الفيزيائي، وتحتفظ بقائمة شارات مستمرة لكل مفتاح مختلف اختُبر حتى الآن، مما يسهّل تتبع مسح اللوحة بأكملها. يزداد عداد الضغطات مع كل keydown مسجَّل؛ فإذا أنتجت ضغطة فيزيائية واحدة أكثر من عدّة واحدة، فهذا تشتت وليس خللاً في الاختبار.

ما ينبغي معرفته

  • المفتاح المعطل: لا يظهر شيء إطلاقاً لذلك الموضع الفيزيائي — راقب code لا key، لأن المفتاح المعطل لا ينتج أي حدث من النوعين.
  • التشتت (Chatter): يقفز العداد بمقدار اثنين أو أكثر لضغطة فيزيائية واحدة — ناتج عن مفتاح ميكانيكي متآكل أو تلامس غشائي فاشل يجعل الإشارة ترتد.
  • مفاتيح محجوزة لنظام التشغيل أو المتصفح: يعترض نظام التشغيل أو المتصفح مفتاح Fn وبعض مفاتيح الوسائط وتركيبات معينة من Windows/Command قبل أن تصل إلى جافاسكريبت صفحة الويب — فالصمت هنا لا يعني دائماً عطلاً في العتاد.
  • الأشباح والتراكب (Ghosting/Rollover): قد يؤدي الضغط على عدة مفاتيح في آنٍ واحد إلى بلوغ حدود مصفوفة لوحة مفاتيح رخيصة داخلياً؛ فإذا أسقطت التركيبات المتزامنة مفتاحاً بصمت، فهذا قيد في مقاومة الأشباح (N-key rollover) وليس بالضرورة تلفاً.
  • كل شيء يبقى محلياً: تُقرأ الأحداث وتُعرض بواسطة جافاسكريبت داخل متصفحك فقط — لا تُرسل أي ضغطة مفتاح عبر الشبكة أبداً، ويُمسح السجل بمجرد مغادرة الصفحة.

الأسئلة الشائعة

أحد المفاتيح لا يُظهر شيئاً هنا — هل لوحة المفاتيح معطلة؟

اختبره أولاً في تطبيق آخر لاستبعاد سبب برمجي. بعض المفاتيح محجوزة لنظام التشغيل أو المتصفح (Fn، بعض مفاتيح الوسائط، Windows/Command في تركيبات معينة) ولا تصل أبداً إلى صفحة الويب — هذا أمر طبيعي وليس عطلاً. وإذا كان المفتاح الفيزيائي نفسه صامتاً في كل تطبيق وكل تخطيط، فالمفتاح نفسه أو توصيلة الكابل هي السبب الأرجح.

ما هو "تشتت" لوحة المفاتيح (chatter)؟

هو مفتاح متآكل يُسجّل ضغطتين أو أكثر لضغطة فعلية واحدة. يظهر ذلك هنا كقفزة في عداد الضغطات بأكثر من واحدة. غالباً ما يمكن إصلاح ذلك في لوحات المفاتيح الميكانيكية لكل مفتاح على حدة عبر التنظيف أو الاستبدال؛ أما لوحات الغشاء فعادة ما تحتاج إلى استبدال كامل.

ما الفرق بين "key" و"code"، وأيهما أثق به عند الاختبار؟

"key" هو الحرف الذي ينتجه تخطيطك الحالي؛ أما "code" فهو الموضع الفيزيائي للمفتاح ولا يتغيّر مع التخطيط. لاختبار العتاد — هل هذا المفتاح الفيزيائي يعمل — راقب code. أما للتحقق من صحة تخطيطك، فقارن key بما يُفترض أن ينتجه ذلك التخطيط.

هل تُسجَّل ضغطات المفاتيح أو تُرسل إلى أي مكان؟

لا. تُعالَج الأحداث بواسطة جافاسكريبت داخل متصفحك وتُعرض على الشاشة فقط؛ لا يُخزَّن أو يُسجَّل أو يُرسل أي شيء إلى أي مكان.

لماذا لا يظهر هنا مفتاح يعمل في تطبيقات أخرى؟

حفنة من المفاتيح يعترضها نظام التشغيل أو واجهة المتصفح قبل أن تصل جافاسكريبت أي صفحة ويب إليها إطلاقاً — بعض مفاتيح الوسائط وتركيبات Fn وبعض سلاسل الاختصارات تتصرف بهذه الطريقة في كل موقع، وليس في هذه الأداة وحدها.

التعليقات

لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!

أدوات مشابهة