الخلاصة

  • اقترحت أول مسودة علنية لـ W3C في ديسمبر 2012 أحداث مؤشر مستقلة عن نوع الجهاز للفأرة والقلم واللمس، مع مسار توافق للصفحات المبنية على أحداث الفأرة.
  • حددت توصية فبراير 2015 أحداث المؤشر وpointerType، وخاصية touch-action لقرارات التمرير، والتقاط المؤشر لمتابعة السحب خارج حدود العنصر.

في نادي الفأرة القديم كان الموظف يعرف الجميع من طريقة الدخول: نقرة ثم حركة سهم. جاء إصبع فلم يجد اسمه في السجل. حفاظًا على عمل بعض الصفحات القديمة، كان المتصفح يصدر حدث فأرة متوافقًا مع اللمسة. تنكر مفيد، لكنه جعل صاحب الصفحة عاجزًا أحيانًا عن معرفة اليد التي دخلت فعلًا. ثم وصل قلم الرسم، فازداد ازدحام مكتب الاستقبال.

وصفت أول مسودة عمل علنية لـ Pointer Events نشرتها W3C في 11 ديسمبر 2012 كلفة هذا التعدد. صفحات كثيرة كُتبت للفأرة، وإضافة اللمس والقلم عبر عائلات أحداث منفصلة تضاعف منطق التعامل مع الحركة. أحداث الفأرة الصادرة للتوافق قد تخفي مصدرها. اقترحت المسودة «مؤشرًا» يمثل تواصل أداة مع موضع على الشاشة، سواء كانت فأرة أو إصبعًا أو قلمًا.

التسمية المشتركة لا تسوّي بين الأدوات. يمكن لـ PointerEvent أن يحمل pointerType والضغط ومساحة اللمس وميل القلم. زر قراءة يحتاج أن يعرف أنه ضُغط؛ لوحة رسم تهتم بثقل سن القلم وزاويته. يكتب المطور مسارًا مشتركًا أولًا، ثم يقرأ خصائص الأداة حيث تضيف قيمة. الجميع يحمل بطاقة دخول واحدة، لكن الرسام يبقي قلمه.

في توصية W3C الصادرة في 24 فبراير 2015، نجد pointerdown وpointermove وpointerup وpointercancel، وأحداثًا لدخول العناصر والخروج منها. تشبه الأسماء ما اعتاده مطورو أحداث الفأرة. ويتيح معرّف المؤشر متابعة كل اتصال حين يكون أكثر من إصبع حاضرًا. صار النادي أوسع، وبقي مخطط الغرف مألوفًا.

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

أصعب تفاوض يحدث عندما يتحرك الإصبع: هل يسحب بطاقة داخل الصفحة أم يريد تمرير الصفحة نفسها؟ انتظار المتصفح لشيفرة الصفحة كي تلغي كل حركة يمكن أن يجعل التمرير ثقيلًا. تعلن touch-action مسبقًا السلوك اللمسي المعتاد المسموح به في منطقة معينة. يتخذ المتصفح قرار التمرير على أساس واضح، بدل انتظار محاكمة صغيرة عند كل خطوة.

وثمة حادثة يعرفها من جرّب سحب منزلق ضيق: يبدأ السحب، ثم يخرج الإصبع قليلًا من المستطيل. التقاط المؤشر يسمح للعنصر بمتابعة استقبال أحداث ذلك المؤشر رغم خروجه من حدود العنصر. وتصف توصية 2015 بدء الالتقاط وإطلاقه وإشعاري gotpointercapture وlostpointercapture. لا ينبغي أن ينقطع السحب لأن اليد رسمت طريقًا متعرجًا.

تحتفظ الأدوات بفروقها. للإصبع مساحة ملامسة، وللقلم ضغط وميل، وللفأرة أزرار وحركة مؤشر. توفر الأسرة المشتركة تكرار الشيفرة، فيما تظل التفاصيل متاحة للرسم والتحكم الدقيق. الجمع بين الضيوف لا يستلزم صهر أدواتهم في قالب واحد.

يسجل تاريخ نشر W3C لـ Pointer Events 1 المسودة الأولى في ديسمبر 2012 والتوصية في فبراير 2015. عالجت الوثيقتان مشكلة كانت تظهر تحت أصابع الناس بالفعل: الويب مبني على عادات الفأرة، والشاشات الجديدة تتلقى لمسًا وقلمًا. كان المطلوب لغة تفتح الباب من غير هدم المبنى.

لا يذهب القارئ إلى الموقع كي يتفحص اسم الحدث. يريد زرًا يستجيب، وصفحة تتحرك بسلاسة، وسحبًا يستمر حين تتجاوز يده الحافة قليلًا. يمكن للفأرة أن تحتفظ بكرسيها القديم. يكفي أن يتسع المدخل.