كاشف تركيز التبويب — ما الذي تسجّله الصفحة حين تغادرها
جارٍ الفحص…
تُقرأ الآن بيانات هذا المستند عن ظهوره وتركيزه.
تُجري هذه الصفحة، داخل متصفحك أنت، الفحص نفسه للتركيز والظهور الذي تُجريه صفحات التقييم الإلكتروني والمراقبة. بدّل التبويب، أو انقر نافذة أخرى، أو صغّر هذه النافذة، وشاهد بالضبط ما الذي يُسجَّل. لا يُرفَع أي شيء؛ كل قراءة في الأسفل تبقى داخل هذا التبويب.
سجل الأحداث
بدّل التبويب، أو انقر نافذة أخرى، أو صغّر هذه النافذة — ثم عُد.
الإشارات
| # | الوقت | الحدث | الحالة المسجّلة | مدة الغياب |
|---|---|---|---|---|
| لا شيء بعد. انتقل إلى تبويب آخر أو انقر نافذة أخرى، ثم عُد. | ||||
ما الذي يقرأه هذا الاختبار
يكشف كل متصفح قراءتين مستقلتين. تقول document.visibilityState ما إذا كان هذا التبويب هو المعروض، وتقول document.hasFocus() ما إذا كان هذا المستند هو الذي يتلقّى ضغطات لوحة المفاتيح. كلتاهما لا تحتاج إذنًا، ولا يمكن تعطيل أي منهما.
وهما ليستا القراءة نفسها. الانتقال إلى تبويب آخر يجعل الصفحة مخفية. أما النقر على نافذة متصفح ثانية أو تطبيق محادثة أو طرفية، فيُبقي هذا التبويب ظاهرًا لكنه يسحب التركيز — فتصبح الصفحة غير مركَّزة، لا مخفية.
تسجّل منصات التقييم القراءتين عادةً، وتعدّهما كلاً على حدة، وتقيس مدة كل غياب. والجدول أدناه يعرض تمامًا السجل الذي ستبنيه.
ما الذي يُطلقه
- الانتقال إلى تبويب آخر — يُطلق
visibilitychangeوتصبح الحالة مخفية. يُسجَّل في كل مكان، بما في ذلك الهواتف. - تصغير النافذة أو قفل الشاشة أو دخول الهاتف في وضع السكون — يُحتسب أيضًا إخفاءً.
- النقر على نافذة أو تطبيق آخر — نافذة متصفح ثانية، أو محرّر، أو تطبيق مراسلة، أو لوحة بحث أو مشغّل. يبقى التبويب ظاهرًا، ويُطلق بدلاً من ذلك حدث
blurالخاص بالنافذة. - فتح أدوات المطوّر في نافذة منفصلة — يُحتسب تبديل نافذة، فيُطلق blur.
- تجميد التبويب أو التخلّص منه من قبل المتصفح لتوفير الذاكرة — يُطلق
freezeوpagehideفي Chromium. - إغلاق الصفحة أو إعادة تحميلها — يُطلق
pagehide، وهو الحدث الذي تُنهي به المنصات محاولة لم تكتمل.
قبل تقييم إلكتروني
إذا حذّرك اختبار من أن مغادرة الصفحة تُسجَّل، فمن المفيد أن تعرف ما معنى ذلك فعلاً قبل أن تجلس له.
- افتح هذه الصفحة في المتصفح الذي ستستخدمه فعلاً في التقييم، واتركها مفتوحة.
- انتقل إلى تبويب آخر ثم عُد فورًا. لاحظ أن السجل دوّن حدث إخفاء وعدد الثواني بدقّة.
- الآن انقر نافذة مختلفة بدلاً من ذلك — تطبيق محادثة أو محرّرًا. سيُظهر السجل حدث blur، ولم يكن التبويب مخفيًا قط.
- شغّل شاشة الحجب لترى ما تعرضه صفحة التقييم لحظة مغادرتك. كثير من المنصات تعرض هذا بالضبط.
- انتبه للحالات العَرَضية: لافتة إشعار، أو نافذة منبثقة لمدير كلمات المرور، أو مشغّل اختصارات — كلها تُسجَّل.
معرفة ما يُسجَّل شيء، وتجاوزه شيء آخر. تخبرك هذه الصفحة بما هي القراءة؛ أما كيف تفسّرها المنصة فذلك شأنها.
كيف تُحسم النتيجة
مركَّز — قيمة visibilityState ظاهرة وhasFocus() صحيحة. هذا التبويب على الشاشة ويتلقّى ضغطاتك.
غير مركَّز — لا يزال ظاهرًا، لكن التركيز انتقل إلى نافذة أو تطبيق آخر. أنت تنظر إلى هذا التبويب بينما تكتب في شيء آخر، أو أن نافذة أخرى تعلوه.
مخفي — التبويب لا يُرسَم إطلاقًا: تبويب آخر أمامه، أو النافذة مصغّرة، أو شاشة الجهاز مطفأة.
يبدأ مؤقّت الغياب مع أول حدث يسحب التركيز، ويتوقف حين تعود القراءتان صحيحتين معًا، فيُحتسب فقدان تركيز يتحوّل إلى تبديل تبويب غيابًا واحدًا متصلاً.
ما الذي لا يستطيع رؤيته
لا تقول أي من هذه القراءات إلى أين ذهبت. تعرف الصفحة أن هذا التبويب لم يعد النشط وكم دام ذلك — لا أي تبويب ولا أي تطبيق ولا ما كان على الشاشة.
كل ما يحدث خارج المتصفح دون تحريك تركيز لوحة المفاتيح غير مرئي لهذه الواجهة البرمجية، لأنه لا يوجد حدث يُطلق أصلاً. ويشمل ذلك جهازًا ثانيًا، أو ورقة مطبوعة، أو شخصًا آخر في الغرفة.
العدد وحده ليس دليلاً على شيء. إشعار يسحب التركيز، ولوحة قارئ شاشة، وتنبيه تحديث للنظام، وتبديل متعمّد للتبويب — كلها تُنتج الحدث نفسه.
المراقبة الجادّة لا تعتمد على هذا وحده. فالكاميرا والميكروفون ومشاركة الشاشة ومتصفحات الإغلاق المثبَّتة ترى أكثر بكثير مما تراه صفحة ويب — راجع اختبار كشف الشاشة الخارجية لقراءة أخرى تستطيع الصفحة أخذها دون أن تسأل.
الخصوصية
الصفحة ثابتة. لا تحليلات ولا ملفات تعريف ارتباط ولا تخزين محلي، ولا تُجري أي طلب شبكة بعد تحميلها.
كل عدّاد وكل طابع زمني على هذه الصفحة يُحسب داخل تبويبك ويزول لحظة إغلاقه. وإعادة التحميل تصفّر كل شيء.
يمكنك قراءتها كاملة: ملف واحد من جافاسكربت، مرتبط من التذييل.
دعم المتصفحات
يعمل visibilitychange وdocument.hasFocus() في كل المتصفحات الحالية، على سطح المكتب والهاتف، دون إذن ودون اشتراط أصل آمن.
أما freeze وresume فحصريان في Chromium، ويُطلقان حين يعلّق المتصفح تبويبًا في الخلفية لتوفير الذاكرة. وبقية المتصفحات لا تبلّغ عنهما إطلاقًا.
في iOS، يُسجَّل تبديل التطبيقات إخفاءً لا فقدانًا للتركيز، لأن المتصفح كله ينتقل إلى الخلفية. والتمييز بين الحالتين لا وجود له إلا حيث توجد نوافذ.
الأسئلة الشائعة
هل يستطيع موقع أن يكشف تبديلي للتبويب؟
نعم، ودون أي إذن. يُطلق حدث visibilitychange في اللحظة التي يتوقف فيها تبويبك عن كونه الظاهر، وتُبلّغ document.visibilityState بالقيمة hidden حتى تعود. كل المتصفحات الحالية تطبّق ذلك، بما فيها متصفحات الهاتف. ولا يوجد إعداد يخفي هذا عن الصفحة.
هل يفرّق التقييم الإلكتروني بين تبديل التبويب وفتح تطبيق آخر؟
نعم. تبديل التبويب يجعل الصفحة مخفية؛ أما النقر على نافذة أو تطبيق آخر فيُبقي الصفحة ظاهرة لكنه يزيل تركيز لوحة المفاتيح، فيُطلق حدث blur بدلاً من ذلك. والمنصة التي تسجّل الاثنين تستطيع التمييز بينهما، وهذه الصفحة تعرض كلاً منهما على حدة لتراه بنفسك.
هل يعرف الاختبار الإلكتروني إلى أي تبويب أو تطبيق انتقلت؟
لا. يخبر المتصفح الصفحة فقط بأنها لم تعد المستند النشط، وبمدة ذلك. أما الوجهة — تبويب آخر أو برنامج آخر أو شاشة مقفلة — فلا تُكشف أبدًا. وأي تفصيل أدق يتطلب مشاركة الشاشة أو متصفح إغلاق مثبَّتًا، وكلاهما ظاهر ويجب الموافقة عليه.
هل يُحتسب أخذ لقطة شاشة مغادرةً للصفحة؟
يعتمد كليًا على طريقة أخذ اللقطة. الاختصار الذي يتولّاه نظام التشغيل دون واجهة خاصة به لا يُطلق شيئًا، لأن المتصفح لا يفقد التركيز أصلاً. أما كل ما يفتح منتقيًا أو لوحة أو نافذة معاينة فيأخذ التركيز، ويُسجَّل ذلك بوصفه blur. جرّب الطريقتين على هذه الصفحة وراقب السجل.
لماذا ارتفع العدّاد وأنا لم أبدّل التبويب؟
أشياء أكثر مما يتوقع الناس تسحب التركيز: لافتات الإشعارات، والنوافذ المنبثقة لمدير كلمات المرور، وتنبيه تحديث النظام، ومشغّل اختصارات لوحة المفاتيح، أو أدوات المطوّر مفتوحة في نافذتها الخاصة. وكلها تُطلق حدث blur لا يمكن تمييزه عن تبديل متعمّد.
هل يمكن تعطيل هذا الكشف من إعدادات المتصفح؟
لا. واجهة Page Visibility جزء من المستند نفسه وليست إذنًا، فليس هناك ما يُسحب. وحجبها سيكسر استخدامات مشروعة مثل إيقاف الفيديو مؤقتًا وإيقاف الحركة وإيقاف المؤقّتات في التبويبات الخلفية.
هل تمنع شاشة ثانية تسجيل تبديل التبويبات؟
لا. نقل نظرك إلى شاشة ثانية لا يغيّر شيئًا، لكن النقر على نافذة في تلك الشاشة يزيل تركيز لوحة المفاتيح عن هذه النافذة ويُطلق حدث blur تمامًا كما لو كنت على شاشة واحدة. أما هل ترى الصفحة الشاشة الثانية نفسها فمسألة أخرى يغطّيها اختبار كشف الشاشة الخارجية.
هل يُرسَل أي من هذا إلى خادم؟
لا. الصفحة ثابتة، بلا تحليلات وبلا ملفات تعريف ارتباط، ولا تُجري أي طلب شبكة بعد تحميلها. وكل حدث ومؤقّت معروض يُحسب داخل تبويبك ويُهمَل عند إغلاقه.