أخطاء RTL في المواقع العربية: قائمة فحص لغير التقنيين
تفتح النسخة العربية من موقعك على جوالك فتشعر أن شيئاً ما «مقلوب»، دون أن تعرف كيف تسميه: سهم «التالي» يشير إلى اليمين بينما القراءة تسير من اليمين إلى اليسار، رقم هاتف يظهر مبعثراً، حقل في نموذج ملتصق بالحافة الخطأ. هذه ليست مسألة ذوق؛ إنها أخطاء تقنية لكلٍّ منها اسم معروف. ومتى عرفت الأسماء، صرت قادراً على مطالبة منفّذ موقعك بإصلاح محدد، بدل عبارة «فيه شي مو مضبوط» التي لا تُصلِح شيئاً. هذه قائمة فحص بأكثر أخطاء المواقع العربية شيوعاً، بلغة صاحب القرار لا بلغة المطوّر.
لماذا تبدو المواقع العربية «مقلوبة»؟ القالب وُلد من اليسار
أغلب القوالب والإطارات البرمجية تُصمَّم أولاً للغات تُكتب من اليسار إلى اليمين، والعربية تُضاف إليها لاحقاً كترقيع. عبارة «يدعم العربية» في وصف القالب تعني غالباً أنه يقبل حروفاً عربية ويقلب اتجاه النص، لا أنه أُتقن من اليمين إلى اليسار في كل تفصيل. النتيجة موقع نصّه عربي لكن هيكله ما زال يفكّر بالمقلوب: العناصر في أماكن اليسار، والأسهم تشير إلى الجهة الخطأ، والمسافات موزّعة كأن القارئ يبدأ من اليسار.
اتجاه الكتابة من اليمين إلى اليسار له اسم تقني هو RTL، ويُضبط جذره في الموقع بخاصية `dir="rtl"`. لكن هذه الخاصية شرط ضروري لا كافٍ؛ فوقها عشرات التفاصيل التي تُنفَّذ يدوياً أو تُنسى. الأخطاء التالية هي ما يُنسى عادةً، وهي أول ما يفضح موقعاً منسوخاً من قالب دون إتقان.
أخطاء الاتجاه والتخطيط
أول ما يُفحص هو الهيكل العام: هل انقلب فعلاً من اليمين إلى اليسار، أم بقي النص وحده عربياً فوق تخطيط مقلوب؟
- اتجاه المستند غير مضبوط: غياب `dir="rtl"` على جذر الصفحة يترك التخطيط بأكمله من اليسار. الاسم التقني: اتجاه المستند (document direction).
- محاذاة النص لليسار: الفقرات تبدأ من اليسار وتترك حافة يمنى مسنّنة. الصواب محاذاة إلى «البداية» (text-align: start) لتتبع اتجاه اللغة تلقائياً.
- الشريط الجانبي والقوائم في الجهة الخطأ: القائمة الجانبية بقيت يساراً بينما يتوقعها القارئ العربي يميناً.
- محاذاة النماذج وتسمياتها: التسميات والحقول محاذاة لليسار، وعلامات الإلزام والرسائل في الجهة المعاكسة لمسار القراءة، فيتردد بصر المستخدم بين الجهتين.
أخطاء الأيقونات والعناصر التي يجب أن تنعكس
في التصميم من اليمين إلى اليسار لا ينقلب النص وحده؛ تنقلب معه العناصر ذات الاتجاه. حين تبقى كما هي، تشير إلى الجهة الخطأ وتربك المستخدم:
- الأسهم الاتجاهية لا تنعكس: سهم «التالي» يجب أن يشير لليسار وسهم «السابق» لليمين، عكس المألوف في الإنجليزية. انعكاس الأيقونة اسمه icon mirroring.
- الشرائح والسلايدر تتحرك بالاتجاه الخاطئ: المعرض ينتقل يساراً بينما تصفّح القارئ العربي يبدأ يميناً.
- مؤشر الخطوات (شريط التقدم) يسير من اليسار: الخطوة الأولى يجب أن تكون في أقصى اليمين.
- سهم القوائم المنسدلة وأيقونة الإرسال في المحادثات: عناصر صغيرة كثيراً ما تُنسى وتبقى بمنطق اليسار.
أخطاء الأرقام والنصوص المختلطة
أكثر الأخطاء إحراجاً تظهر حين تختلط العربية بأرقام أو كلمات لاتينية في السطر نفسه، وهو ما يحدث في كل رقم هاتف وكل سعر:
- أرقام الهاتف تظهر معكوسة أو مبعثرة: علامة + ورموز الفصل بين المقاطع تربك ترتيب العرض، فيقرأ الزائر رقماً مقلوباً لا يستطيع الاتصال به.
- خلط الأرقام المشرقية (٠١٢٣) والغربية (0123) في الصفحة نفسها: بعض الأسعار بشكل والبعض بآخر دون قاعدة موحّدة، فيبدو الموقع غير مضبوط.
- الكلمات الإنجليزية داخل جملة عربية تلتصق أو تتكسر: اسم منتج أو رابط لاتيني يقفز إلى موضع خاطئ داخل الجملة.
الجذر التقني للأرقام المقلوبة، وأخطاء الطباعة الدقيقة
سبب انقلاب الأرقام والنصوص المختلطة واحد: الطريقة التي يرتّب بها المتصفح النص ثنائي الاتجاه تحكمها قاعدة معيارية اسمها الخوارزمية ثنائية الاتجاه (Unicode Bidirectional Algorithm). حين يُترك النص المختلط دون «عزل» صحيح لكل مقطع، يخطئ المتصفح في ترتيبه. الحل التقني اسمه عزل الاتجاه (bidi isolation)، ويُطبَّق على أرقام الهواتف والأكواد والكلمات اللاتينية داخل النص العربي. أما اختيار نوع الأرقام (مشرقية أم غربية) فقرار تنسيق واحد يُلتزم به في الموقع كله.
تبقى بعد ذلك تفاصيل الطباعة التي تفصل الموقع المتقن عن المقبول: المسافات والحشو معكوسة حين يُبنى التنسيق على «يمين/يسار» ثابتة بدل الخصائص المنطقية في CSS (margin-inline, padding-inline) التي تنقلب مع اتجاه اللغة تلقائياً؛ وتباعد الأحرف (letter-spacing) المنقول عن قالب لاتيني يفصل الحروف العربية الموصولة فتبدو الكلمة ممزّقة، والعربية تُوصَل ولا تُباعَد؛ وارتفاع سطر مناسب للاتينية قد يزحم الحروف العربية بمدّاتها وتشكيلها.
هذه الأخطاء أدقّ من سابقاتها، لكنها تُشعِر الزائر أن الموقع «أجنبي عُرّب» حتى لو لم يعرف السبب. حين تجتمع سلامة الاتجاه، وانعكاس الأيقونات، وضبط الأرقام، وإتقان الطباعة، يشعر الزائر السعودي أن الموقع صُمّم له، لا نُقل إليه.
كيف تستخدم هذه القائمة معياراً للتسليم
القيمة الحقيقية لهذه القائمة أنها تحوّل انطباعك الغامض إلى بنود قابلة للفحص. قبل أن تستلم أي موقع عربي، افتحه على جوالك وامرّ على البنود واحداً واحداً، ثم أعطِ منفّذك ملاحظات بالأسماء التقنية لا بالإحساس: «اعتمد الخصائص المنطقية بدل يمين/يسار الثابتة»، «اعكس الأيقونات الاتجاهية»، «اعزل أرقام الهواتف بمعالجة ثنائية الاتجاه»، «وحّد نوع الأرقام». هذه العبارات تنقل الحوار من الذوق إلى المعيار، وتجعل الجودة شرط تسليم لا رجاءً.
هذه المعايير نفسها هي ما تلتزم به كركيوم في بناء واجهات عربية من اليمين إلى اليسار، ولها خبرة في مواقع RTL أصيلة تشمل متجراً كاملاً بالعبرية. الفرق بين موقع «يقبل العربية» وموقع «صُمّم بالعربية» هو مجموع هذه التفاصيل الصغيرة.
الأسئلة الشائعة
هل جودة RTL مسألة ذوق أم مشكلة حقيقية؟
مشكلة حقيقية. الاتجاه الخاطئ للأسهم والأرقام المعكوسة تُبطئ المستخدم وتُضعف ثقته، وقد تمنعه من إكمال نموذج أو نسخ رقم هاتف. ما يبدو تفصيلاً جمالياً يترجَم إلى احتكاك فعلي في الاستخدام.
هل يكفي أن أضيف dir="rtl" ليصبح الموقع سليماً؟
لا. الخاصية شرط ضروري يضبط الاتجاه العام، لكنها لا تعكس الأيقونات، ولا تعزل أرقام الهواتف، ولا تصلح المسافات المبنية على يمين/يسار ثابتة. الإتقان مجموع تفاصيل فوق هذه الخاصية.
كيف أفحص موقعي بنفسي دون خلفية تقنية؟
افتحه على جوالك، وامرّ على بنود هذه القائمة: هل تشير الأسهم إلى الجهة الصحيحة؟ هل رقم الهاتف مقروء؟ هل الأرقام موحّدة؟ هل النماذج محاذاة لليمين؟ كل بند يظهر لك بالعين دون أدوات.
القالب الذي اشتريته مكتوب أنه «يدعم العربية»، فلماذا يبدو غير متقن؟
«يدعم العربية» غالباً يعني أنه يقبل الحروف العربية ويقلب اتجاه النص، لا أنه أُتقن من اليمين إلى اليسار في الأيقونات والأرقام والمسافات. الدعم اللغوي شيء والإتقان في التنفيذ شيء آخر.
لماذا تظهر بعض الأرقام والرموز معكوسة رغم أن النص عربي؟
لأن ترتيب النص المختلط (عربي مع أرقام أو حروف لاتينية) تحكمه الخوارزمية ثنائية الاتجاه، وحين لا يُعزَل كل مقطع بشكل صحيح يخطئ المتصفح في ترتيبه. الحل عزل المقاطع المختلطة، وهو معالجة تقنية معروفة.
إن أردت موقعاً عربياً يجتاز هذه القائمة بنداً بنداً — لا مجرد قالب «يدعم العربية» — فهذا هو المعيار الذي تبني به كركيوم واجهاتها من اليمين إلى اليسار.