أصبحت واجهة برمجة التطبيقات Popover API متاحة الآن في الإصدار الأساسي

تاريخ النشر: 7 شباط (فبراير) 2025

في نيسان (أبريل) 2024، تم نشر مقالة على هذا الموقع الإلكتروني أعلنت أنّ واجهة برمجة التطبيقات Popover API أصبحت متاحة للإصدار الأساسي. ومع ذلك، تبيّن لنا أنّنا أخطأنا، وأصبح النافذ المنبثقة متوفّرًا في الإصدار الأساسي اعتبارًا من 27 كانون الثاني (يناير) 2025. توضّح هذه المشاركة سبب حصولنا على النتيجة الخاطئة، والتغييرات التي أجريناها منذ ذلك الحين لمنع تكرار هذه الأخطاء.

ما هي Popover API؟

توفّر Popover API طريقة مضمّنة لإنشاء أنواع مختلفة من النوافذ المنبثقة المستخدمة في تطبيقات الويب. في السابق، كان عليك استخدام JavaScript، والحرص على تنفيذها بطريقة يسهل الوصول إليها. توفّر واجهة برمجة التطبيقات كلّ هذه العناصر للمتصفّح، ويمكن إنشاء نافذة منبثقة بسيطة بشكل تعريفي في HTML.

<button popovertarget="my-popover">Open Popover</button>

<div id="my-popover" popover>
  <p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>
مثال أساسي لاستخدام سمة popover

Why wasn't it Baseline in April 2024?

عندما طرح Firefox ميزة النافذة المنبثقة في نيسان (أبريل) 2024، لم نكن قد اكتشفنا بعد أنّ هناك مشكلة كبيرة في iOS وiPadOS. في هذه المتصفّحات المتوافقة مع الأجهزة الجوّالة، لا يؤدي النقر خارج النافذة المنبثقة إلى إغلاقها، وهي ميزة تُعرف باسم إغلاق خفيف. هذه مشكلة من شأنها أن تمنع معظم المطوّرين من استخدام النافذة المنبثقة. وهذا يعني أنّه لم يكن من المفترض أن يتم تضمينه في Baseline في نيسان (أبريل) الماضي، وكان علينا الانتظار إلى أن يتم حلّ المشكلة في Safari 18.3.

لماذا أخطأنا في تقديرك؟

تعتمد Baseline على ميزات الويب لحساب الحالات التي تكون فيها الميزات ضمن Baseline أو خارجها. إذا اطّلعت على ملف ميزة فردي في هذا المشروع، مثل ملف ميزة المنبثقة، ستظهر لك الميزات الفردية من بيانات توافق متصفّح Mozilla. وتحتوي عادةً إحدى ميزات الويب على عدد من هذه الإدراج. ويعود السبب في ذلك إلى أنّ الميزة على الويب ليست مجرد سمة أو طريقة واحدة، بل تحتاج إلى عددٍ من الأجزاء المكوّنة لكي تعمل. ولا تشكّل الميزة مواصفة كاملة. على سبيل المثال، غالبًا ما تتضمّن مواصفات CSS ميزات فرعية لم يتم تنفيذها مطلقًا أو لا يتم استخدامها إلا في سياق معيّن. تستخدِم ميزة الويب مزيجًا من بيانات مدى التوفّر الحالية والمعلومات التي يقدّمها المستخدمون لتحديد ما يلي: العناصر التي تشكّل ميزة منصة الويب، وما إذا كان التنفيذ المجزأ خطيرًا بما يكفي لإبقاء الميزة خارج "المستوى الأساسي".

في شباط (فبراير) الماضي، لم يكتمل العمل على ميزات الويب بعد. لذلك، للمساعدة في توضيح آلية عمل Baseline، كنا نحاول معرفة الميزات الرئيسية التي ستكون جزءًا من Baseline 2024 بدون جميع البيانات التي نحتاجها لإجراء ذلك. على الورق، أو بالأحرى في بيانات توافق المتصفّح التي لم يتم تعديلها حتى أيلول (سبتمبر) عندما تم رصد المشكلة، بدا أنّه تم تضمين النافذة المنبثقة. ومع ذلك، لم يكن جاهزًا بسبب الخطأ في iOS الذي كان خطيرًا بما يكفي لمنع استخدام النافذة المنبثقة.

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

كيف يمكننا تجنُّب حدوث ذلك في المستقبل؟

لقد حققنا تقدّمًا كبيرًا في ما يتعلّق بالبيانات. إنّ بيانات ميزات الويب مكتملة تقريبًا، وبالتالي يمكننا أن نثق بشكل أكبر في أيٍّ من الميزات التي نعتبرها أساسية.

في ما يتعلّق بهذه المشكلة، كان جزء منها هو تحديد مشكلة تتعلّق فقط بالأجهزة الجوّالة التي تعمل بنظام التشغيل iOS. هناك بعض الإجراءات التي يتم اتّخاذها من شأنها تسهيل تحديد مشاكل التشغيل التفاعلي على الأجهزة الجوّالة في المستقبل. نحن نعمل حاليًا على تطوير اختبارات الأجهزة الجوّالة في اختبارات منصّة الويب، لذا من المفترض أن نتمكّن من رصد المشاكل في المتصفّحات المتوافقة مع الأجهزة الجوّالة بشكلٍ أفضل، بشكلٍ منفصل عن أجهزة الكمبيوتر المكتبي. وننوي أيضًا عرض هذه البيانات في لوحة بيانات webstatus.dev هذا العام. إذا حدثت مشكلة مماثلة في المستقبل، من المفترض أن نحصل على إعلامات أكثر سرعة بأنّها حدثت، ونأمل أن يكون ذلك قبل تضمين الميزة في "الأداء الأساسي".

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