أفضل معايير تطوير الواجهة الأمامية

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

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

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

المبادئ الأساسية

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

Performance-First Development

تطوير يركّز على الأداء كأولوية

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

Human

التحسين التدريجي والتدهور الرشيق

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

Component-Based Architecture

الهندسة المعمارية القائمة على المكونات

طوِّر واجهات المستخدم كعناصر قابلة لإعادة الاستخدام ومحكمة العزل. يدعم هذا الهيكل قابلية التوسع، والهيكلية المعيارية، واتساق التصميم عبر الخدمات.

Accessibility-First Thinking

اعتماد إمكانية الوصول كأولوية

ادمج متطلبات الوصول منذ المراحل الأولى للتطوير. اتبع معايير WCAG 2.2 مستوى AA لضمان شمولية الحلول الرقمية للمستخدمين من ذوي الاحتياجات المتنوعة.

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


تطوير يركّز على الأداء كأولوية

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

المقاييس المستهدفة

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

LCP

سرعة عرض أكبر محتوى مرئي

≤ 2.5 ثانية = جيد
يحتاج إلى تحسين
ضعيف
FCP

معدل تحميل محتوى مرئي

≤ 1.8 ثانية = جيد
يحتاج إلى تحسين
ضعيف
TTI

وقت التفاعل

≤ 5 ثوانٍ = جيد
يحتاج إلى تحسين
ضعيف

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

استراتيجية التطوير

تنفيذ تقسيم الحزم والتحميل الكسول

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

// مثال:
const Reports = React.lazy(() => import('./pages/Reports'));

تحسين الصور ووسائط العرض

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

<img src="hero-small.webp" srcset="hero-small.webp 480w, 
hero-medium.webp 768w, 
hero-large.webp 1200w" 
sizes="(max-width: 600px) 480px, 
(max-width: 960px) 768px, 1200px" 
loading="lazy" alt="Hero image responsive to screen size" />

تقليل الاعتماد على مكتبات الطرف الثالث

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

تطبيق استراتيجيات التخزين المؤقت بفعالية

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

// Example of caching static assets with Nginx
// Add to nginx.conf inside the appropriate server/location block:

location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|woff2|ttf|svg|webp)$ {
    expires 7d;
    add_header Cache-Control "public, no-transform";
}

مراقبة مؤشرات أداء الويب الأساسية

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


التحسين التدريجي

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

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

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

استراتيجية التنفيذ

تلعب سمات ARIA دوراً محورياً في جعل الواجهات المعقدة قابلة للوصول، وهو أمر بالغ الأهمية في الخدمات الحكومية التي يجب أن تخدم جميع المواطنين على قدم المساواة. وعند تنفيذ ARIA، يجب اتباع الممارسات التالية:

  • البدء بأساس قوي عبر استخدام HTML يعمل بدون JavaScript
  • إضافة الوظائف المحسنة تدريجياً
  • تنفيذ بدائل للميزات الحديثة
  • تقديم تغذية راجعة مناسبة لحالات التحميل المختلفة

الهندسة المعمارية القائمة على المكونات

يجب بناء التطبيقات الحديثة للواجهة الأمامية باستخدام هيكلية معتمدة على المكوّنات تدعم إعادة الاستخدام وسهولة الصيانة:

إنشاء مكوّنات ذرية

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

اعتماد الفصل بين المكوّنات الذكية والعرضية

قم بفصل المكوّنات إلى مكوّنات منطقية (ذكية) وأخرى للعرض فقط (تقديمية). يساعد ذلك في سهولة الاختبار وتحسين إمكانية إعادة الاستخدام عبر الخدمات الحكومية المختلفة.

ضمان عزل المكوّنات

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

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

نهج التطوير

  • استخدم إطار عمل حديث مثل React أو Vue.js لتطوير يعتمد على المكوّنات، وقم بوضع استراتيجية لبناء موقعك أو تطبيقك باستخدام إطار عمل JavaScript حديث ونهج يعتمد على واجهات . API-first
  • نفّذ الكتابة الصارمة باستخدام TypeScript لتحقيق صيانة أفضل للكود. رغم أنه ليس إلزامياً، إلا أنه يُعد اقتراحاً مهماً لضمان كتابة كود منضبط.
  • أنشئ مكتبة مكوّنات يمكن مشاركتها عبر مختلف مشاريع الحكومة.
  • ضع أنماط واضحة لتركيب المكوّنات وآلية تواصلها.

إمكانية الوصول والتدويل

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

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

تنفيذ الامتثال لإرشادات WCAG

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

تطبيق سمات ARIA

تُعد سمات ARIA جسراً أساسياً لجعل واجهات الويب المعقدة قابلة للوصول، وهو أمر بالغ الأهمية للخدمات الحكومية التي يجب أن تخدم جميع المواطنين دون استثناء. عند تنفيذ ARIA، اتبع هذه الممارسات الأساسية:

  • استخدم مناطق aria-live للإعلان عن التحديثات المهمة مثل حالة إرسال النماذج أو رسائل الأخطاء.
  • نفّذ حالات aria-expanded, aria-selected,aria-pressed بشكل صحيح للعناصر التفاعلية.
  • اربط عناصر النماذج مع تسمياتها باستخدام السماتaria-labelledby أو aria-describedby عندما لا تكون الروابط القياسية في HTML كافية.
  • عند بناء مكوّنات مخصصة لا تملك دلالات HTML طبيعية، استخدم أدوار وحالات ARIA المناسبة لتوضيح وظيفتها وسلوكها لتقنيات المساعدة.
  • استخدم aria-current في التنقل للإشارة إلى الصفحة الحالية أو الخطوة الحالية في العمليات متعددة المراحل. طبّق المعالم الهيكلية باستخدام aria-label or aria-labelledby لإنشاء هيكل وثائقي واضح، وهو أمر بالغ الأهمية للواجهات الثنائية اللغة.

نهج التطوير

  • استخدم HTML دلالي وقدّم إشارات مرئية لتركيز العناصر. حافظ على تباين ألوان كافٍ لضمان وضوح العناصر.
    <nav aria-label="Main Navigation">
      <ul>
       <li><a href="/services">Services</a></li>
      </ul>
    </nav>
    
  • استخدم سمات ARIA عند الضرورة لتحسين إمكانية الوصول.
    <div role="alert" aria-live="polite">Form submitted successfully.</div>
    
    <button aria-expanded="false" aria-controls="faq1">Show FAQ</button>
    
    <div id="faq1" hidden>FAQ content here</div>
    

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


الإرشادات العملية للمطورين

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

الحفاظ على المكونات الذرية والمعيارية

أنشئ مكوّنات صغيرة قابلة لإعادة الاستخدام، يمكن تركيبها لتكوين أجزاء أكبر من واجهة المستخدم.

استخدم وحدات البناء الذرية (الأزرار والعناوين)، ثم ادمجها لإنشاء مكوّنات أكبر.

لا تنشئ مكوّنات ضخمة تجمع بين واجهة المستخدم والمنطق البرمجي والتخطيط في كود واحد.

افصل بين المكوّنات الذكية والعرضية

نظّم الكود للفصل الواضح بين المنطق الخاص بالتعامل مع البيانات والعرض.

استخدم المكوّنات الحاوية (الذكية) لإدارة الحالة وجلب البيانات، واجعل المكوّنات العرضية مخصصة فقط لواجهة المستخدم.

ادمج جلب البيانات، وتحديثات الحالة، وترميز عناصر الصفحة (DOM) في ملف واحد.

تحسين الأصول والصور

قدّم الوسائط بكفاءة باستخدام تنسيقات حديثة وتحميل كسول .

استخدم WebP/AVIF، والصور المتجاوبة Responsive Images، وloading="lazy”

حمّل ملفات JPEG الضخمة غير مضغوطة في أعلى الصفحة

استخدم تقسيم الكود والتحميل الكسول

حمّل فقط ما هو ضروري لتحسين سرعة تحميل الموقع أو التطبيق.

نفِّذ تقسيم الكود بناءً على المسارات، (مثل استخدام React.lazy) أو dynamic imports

اجمع جميع الصفحات معًا في ملف JS ضخم واحد.

تقليل الاعتماد على مكتبات الطرف الثالث

أضف فقط السكربتات الخارجية الضرورية بعد تقييم حجمها وتأثيرها على الأداء.

راجع حزم المشروع، واحذف الأكواد غير المستخدمة، واختر بعناية سكربتات التحليلات وتجربة المستخدم.

أضف عدة أطر عمل أو إضافات ثقيلة متعددة دون التحقق من تكلفتها على الأداء.

التطوير وفق مبدأ التحسين التدريجي والتدهور الرشيق

تأكد من أن الخدمة تعمل حتى في المتصفحات القديمة أو بدون JavaScript

ابدأ بإنشاء صفحات HTML تعمل وظيفيًا، ثم أضف ميزات JS بشكل تدريجي، مع توفير بدائل في حال عدم توفر هذه الميزات.

لا تمنع المستخدمين من الوصول أو إكمال مهامهم إذا تعطلت ميزة أو سكربت.

حافظ على مستوى عالٍ من إمكانية الوصول (WCAG 2.2 AA)

قدم تجربة مستخدم شاملة مصممة بعناية ومختبرة باستخدام أدوات مساعدة.

استخدم HTML الدلالي، واختبر باستخدام قارئات الشاشة JAWS) ، (NVDA، والتنقل بلوحة المفاتيح، وسمات الدور.

اعتمد على العناصر المرئية، أو قم بإلغاء العناصر الدلالية، أو تجاهل اختبار التقنيات المساعدة.

اعتمد على HTML+ الدلالي مع تحسينات ARIA

استخدم أولاً العناصر الأصلية فيHTML؛ أضف تحسينات ARIA فقط عند الضرورة.

استخدم عناصر مثل <nav>, <button>, وأضف أدوار وحالات ARIA عندما لا تكون العناصر الأصلية كافية.

استخدم <div role="button"> أو أضيف ARIA لتحل محل العناصر الدلالية الصحيحة في HTML

طبّق استراتيجيات فعّالة للتخزين المؤقت ومراقبة الأداء

اعتمد استراتيجيات تخزين مؤقت صحيحة، وراجع الأداء بشكل دوري.

استخدم التخزين المؤقت في المتصفح، وعوامل الخدمة، وتتبع مؤشرات أداء الويب الأساسية مثل LCP) وFCP وTTI )

إرسال جميع الملفات بدون رؤوس التخزين المؤقت أو تجاهل مراجعات الأداء.

توثيق ونشر طريقة استخدام المكونات

التوثيق الواضح يدعم إعادة الاستخدام ويوفر التناسق بين الفرق المختلفة.

الحفاظ على التوثيق متضمّنًا الخصائص، والحالات، والأمثلة المرئية، وإرشادات الاستخدام.

لا تطرح مكوّنات بدون شرح، أو بدون معايير تسمية واضحة، أو بدون توضيح الغرض من استخدامها.


Sign up for our newsletter
Receive the latest updates from the UAE Design System
TDRA empowers youth for a sustainable future
What's new
Sustainable by design

Sustainable web design is the practice of designing and developing websites that have a low environmental impact.

Read More