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

حدد ما الذي تريد تغطيته

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

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

أنشئ نسخة فرعية من دون فقد غير مقصود

يوفر توثيق fontTools subset خيارات لبناء subset من نص أو ملف نصي أو نقاط Unicode، وإخراج WOFF2 عند توافر دعم Brotli. ضع ملف النص المرجعي في أمر البناء بدلاً من قائمة يدوية صغيرة، واحتفظ بخطوة البناء وسجلها. أداة subsetting تستطيع الاحتفاظ بمجموعات glyph المرتبطة بقواعد OpenType وفق إعداداتها؛ لذلك لا تفترض أن عدد المحارف المدخل يساوي عدد glyph في الناتج.

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

افحص تعريف CSS ومسار fallback

تشرح مسودة W3C CSS Fonts تعريف @font-face وواصف unicode-range لإخبار المتصفح عن نطاقات محارف الوجه. تعامل مع المواصفة بوصفها مسودة في تاريخ المراجعة، ولا تجعل تقسيم الخط إلى عدة ملفات افتراضاً ضرورياً. ابدأ بوجه واحد، ثم أضف التقسيم فقط إذا أظهر القياس فائدة؛ ترتيب تعريفات الخطوط والـfallback قد ينتج اختلافاً بين أنظمة التشغيل.

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

تحقق من التشكيل لا من وجود الحرف فقط

العربية تحتاج إلى تشكيل سياقي واتصال بصري بين أشكال الحروف، وتصف وثائق HarfBuzz عملية shaping بأنها تحويل تسلسل Unicode إلى glyphs مرتبة وموضوعة بحسب نظام الكتابة واللغة. افحص كلمات فيها حروف أولية ووسطية ونهائية، وحروف لا تتصل بما بعدها، وتشكيل فوق الحرف وتحته. لا تحكم على النص من جدول glyph أو خريطة cmap وحدها؛ وجود الرمز لا يكفي لإثبات أن شكل الكلمة في المتصفح صحيح.

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

مثال رقمي للمقارنة

افترض خطاً كاملاً حجمه 420 كيلوبايت ونسخة فرعية 96 كيلوبايت مبنية من نصوص الواجهة. التوفير النظري نحو 77٪، لكنه لا يكفي لقبول البناء. شغل 40 عبارة مرجعية على الخطين في متصفحين، ثم قارن الصور وطلبات الشبكة. إذا ظهر 39 نصاً سليماً وواحد به fallback، فاحفظ النص المتعثر واسم المحرف وسجل المتصفح قبل تعديل مجموعة الإدخال. هذه أرقام مثال توضيحي وليست نتيجة قياس على خط منشور.

اجعل الفحص الآلي يقارن عدد الحالات المعروفة ونجاح تحميل الملف، لكن أضف مراجعة بصرية للحروف المتصلة والتشكيل. يمكن اختبار screenshot بمقارنة مرئية أو يدوية؛ اختلاف anti-aliasing بين الأجهزة قد يعطي فروق بكسل حتى عندما يكون النص مقروءاً. لا تضع عتبة آلية واحدة تعلن أن الخط «صحيح» لجميع المستخدمين.

مصفوفة الاختبارات وحدودها

اختبر الخط الكامل، والـsubset، وفشل تحميل WOFF2، وغياب محرف واحد متعمد، وإصداراً قديماً مخزناً في cache. جرّب شبكة بطيئة حتى ترى أثر font-display والبديل المؤقت، ثم أعد الاختبار بعد مسح التخزين. افحص صفحة RTL وأخرى مختلطة الاتجاه، وأعدها على نسخ المتصفحات التي يدعمها المشروع. وثق الحالات التي لم تجر تجربتها بدلاً من افتراض توافق شامل.

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

تسليم مشروع التخرج

يسلم الفريق ملف النصوص المرجعية، الأمر الذي ينتج WOFF2، جدول أحجام وبصمات، لقطات المقارنة، ونتيجة كل متصفح مع ملاحظات الـfallback. اربط النتائج بصفحة التجربة لا بادعاء أن كامل الموقع متاح أو خال من عيوب العرض. ترتبط الفكرة بـمشاريع التخرج وتطوير تطبيقات الويب. يمكن الرجوع إلى مقارنة المصطلحات العربية في الواجهة إذا كان الفريق يريد مراجعة النصوص نفسها؛ أما هذا المختبر فيقيس ملف الخط وعرض الحروف.

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

المصادر

مراجعة المصادر: .

اختبار المثال وحدوده

مجموعة المحارف ومقاييس الأداء أمثلة لمختبر تعليمي؛ يجب اختبار الخط المرخص والمتصفحات المستهدفة فعلياً قبل اعتماد نتيجة.

مقالات ذات صلة

الخدمة المرتبطة: تطوير المواقع والتطبيقات والأنظمة المخصصة.

أرسل متطلبات مشروعك