الأساسيات
الوصول والإتاحة
الإتاحة معيار جودة يُبنى مرة واحدة داخل كل مكوّن، لا ميزة تُضاف لاحقا عند الحاجة.
ابنِ مرة واحدة، كن متاحا في كل مكان
هذا ليس شعارا: هو ترتيب عملي للأولويات. مندوب واقف بيده كيس وهاتفه بيده الأخرى، وموظف مكتب يعمل بلوحة مفاتيح طوال يومه، وصيدلي يقرأ شاشة صغيرة تحت إضاءة سيئة: كلهم يستخدمون نفس المكوّنات، وكلهم يستحقون أن تعمل معهم دون مجهود إضافي.
إذا صمّمنا الزر الأساسي أو حقل الإدخال أو البادج ليكون متاحا بشكل صحيح من أول يوم، فكل شاشة تستخدم ذلك المكوّن ترث الإتاحة تلقائيا. لا يحتاج أي فريق منتج لاحقا أن يتذكر إضافتها بنفسه.
معيار جودة، لا تفصيل تجميلي
التعامل مع الإتاحة كمعيار جودة يعني أنها تُختبر مثل أي عطل آخر. زر لا يمكن الضغط عليه بدقة هو خلل، وليس تفصيلا بصريا.
حالة خطأ لا يلاحظها المستخدم هي خلل وظيفي، وليس مسألة أسلوب.
مساحات اللمس
الحد الأدنى لأي هدف قابل للمس على الجوال هو 44×44 بكسل. هذا ليس رقما تعسفيا: هو أصغر مساحة يمكن للإبهام أن يصيبها بدقة أثناء الوقوف والحركة، وهي الحالة الطبيعية لمندوب المبيعات في ميركاتو.
أزرار الستيبر (− عدد +) على بطاقة المنتج مثال حساس بالذات: هذه الأزرار تُستخدم عشرات المرات في الجلسة الواحدة، وأي تقصير في حجمها يتحول إلى احتكاك متكرر طوال اليوم.
- اجعل مساحة اللمس الفعلية 44×44 بكسل حتى لو كان الأيقونة المرئية أصغر، بإضافة حشوة غير مرئية حول الهدف.
- باعد بين أزرار الستيبر والأزرار المتجاورة بما يكفي لمنع الضغط الخاطئ على الهدف المجاور.
- لا تصغّر هدف اللمس لأن التصميم المرئي "يبدو أنظف" بحجم أصغر.
- لا تعتمد على دقة اللمس المخبرية؛ اختبر الحجم أثناء الوقوف والمشي، لا وأنت جالس أمام شاشة كبيرة.
اللون لا يحمل المعنى وحده أبدا
أي حالة أو معنى في الواجهة يُعبَّر عنه باللون بالإضافة إلى تسمية نصية، وليس باللون منفردا. البادج الأخضر بلا كلمة "مكتمل" بجانبه هو مجرد نقطة ملونة.
هذه النقطة لا تخبر مستخدما يرى الألوان بشكل مختلف بشيء، ولا تظهر في قارئ شاشة، ولا تُقرأ بسرعة تحت ضوء الشمس القوي.
- اقرن أي حالة أو معنى معبَّر عنه باللون بتسمية نصية واضحة بجانبه.
- اختبر كل عنصر ملوّن يحمل معنى من منظور مستخدم يرى الألوان بشكل مختلف قبل اعتماده.
- لا تكتفِ ببادج أو نقطة ملونة بلا كلمة توضح معناها.
- لا تفترض أن اللون وحده يُقرأ بنفس الوضوح تحت ضوء الشمس القوي.
حالات المخزن مثال حاسم
التمييز بين متوفر / غير متوفر / غير مرتبط لا يعتمد على اللون فقط: يجمع اللون مع أيقونة مع تسمية نصية معا.
لماذا هذا القرار غير قابل للتفاوض
التباين اللوني
أي نص يظهر فوق خلفية ملونة، سواء في بادج أو شريحة أو تنبيه، يبقى واضحا للقراءة في كل حالاته، وليس فقط في اللقطة المثالية على شاشة التصميم.
- اختبر كل زوج نص/خلفية في الحالتين الفاتحة والداكنة قبل اعتماده.
- لا تعتمد لونا لمجرد أنه يطابق هوية العلامة إن كان يضعف وضوح النص فوقه.
حالات التحميل واستقرار الواجهة
حالات التحميل تُبنى كهياكل عظمية (skeleton) تحاكي شكل المحتوى النهائي، وليس مؤشر دوران وحده. الهيكل العظمي يحافظ على ثبات التخطيط: لا يقفز المحتوى ولا يتحرك موضع اللمس بمجرد وصول البيانات.
لماذا هذا يهم للإتاحة تحديدا
حلقة التركيز المرئية
كل عنصر تفاعلي في ميركاتو يُعرَّف له حلقة تركيز مرئية بعرض 2 بكسل، بلون أساسي، بمسافة إزاحة 2 بكسل.
- عرّف حلقة تركيز مرئية بعرض 2 بكسل بلون أساسي وإزاحة 2 بكسل لكل عنصر تفاعلي.
- رتّب التنقل بين العناصر تبعا لاتجاه القراءة المنطقي من اليمين إلى اليسار.
- لا تُخفِ حلقة التركيز عن أي عنصر تفاعلي بحجة أنها "غير جميلة".
إدارة التركيز عند فتح الأوراق السفلية
عند فتح ورقة سفلية (bottom sheet)، ينتقل التركيز إليها فورا. عند إغلاقها، يعود التركيز إلى العنصر الذي فتحها في الأصل، لا إلى بداية الصفحة ولا إلى مكان عشوائي.
التفصيل الذي يفرّق بين واجهة تعمل ووهم أنها تعمل
الستيبر المخصص قابل للتنقل بلوحة المفاتيح
ستيبر الكمية (− عدد +) مكوّن مخصص، لا عنصر HTML قياسي، وهذا يعني أن مسؤولية جعله قابلا للتنقل والتفعيل بلوحة المفاتيح تقع على من بناه.
لا يكفي أن يعمل باللمس فقط.
الإيماءات غير القياسية تحتاج بديلا مرئيا
أي إيماءة غير قياسية، مثل السحب لإلغاء طلبية فرعية، يجب أن يرافقها دائما زر مرئي يؤدي نفس الإجراء بالضبط. الإيماءة اختصار لمن يعرفها، وليست الطريقة الوحيدة لإنجاز المهمة.
- أضف زر إلغاء صريحا بجانب أي إيماءة سحب، يؤدي الإجراء نفسه بالضبط.
- اجعل الإيماءة تحسينا اختياريا فوق مسار أساسي يعمل بالكامل بدونها.
- لا تجعل الإلغاء ممكنا بالسحب فقط دون أي مسار بديل.
- لا تفترض أن كل مستخدم يكتشف الإيماءة من تلقاء نفسه.
أخطاء النماذج
رسالة الخطأ تظهر مباشرة أسفل الحقل المعني، وليس فقط في أعلى النموذج. إطار الحقل يتحول إلى الأحمر، وتسبق رسالة الخطأ أيقونة تحذير.
لا تُخفى الأخطاء أبدا داخل تنبيه عابر (toast) يختفي من تلقاء نفسه، لأن خطأ التحقق من صحة نموذج يحتاج وقتا كافيا ليُقرأ ويُصحَّح، لا ثانيتين ثم يختفي.
- ضع رسالة الخطأ ملاصقة للحقل الذي تخصه، بلون أحمر وأيقونة تحذير قبلها.
- اترك رسالة الخطأ ظاهرة حتى يصحح المستخدم الحقل فعليا.
- لا تجمع كل الأخطاء في قائمة واحدة أعلى النموذج فقط، تاركا المستخدم يبحث عن الحقل المقصود.
- لا تعرض خطأ التحقق داخل تنبيه عابر يختفي تلقائيا قبل أن يُقرأ.
التسميات الصوتية بالعربية
كل أيقونة تحمل معنى وظيفيا، لا زخرفيا فقط، تحتاج تسمية بديلة تُقرأ من قارئ الشاشة، وهذه التسمية تُكتب بالعربية، لا بالإنجليزية.
اللغة العربية ليست ترجمة لاحقة في ميركاتو، بل اللغة الأصلية للمنتج، وهذا ينطبق أيضا على ما لا يُرى: نص المساعدة الصوتية لأيقونة إلغاء أو أيقونة حالة مخزن يجب أن يكون بنفس الجودة والدقة التشغيلية التي يُكتب بها أي نص ظاهر على الشاشة.
استخدم المصطلح التشغيلي الدقيق
قائمة تحقق سريعة
قبل اعتماد أي شاشة أو مكوّن، راجعه مقابل هذه الأسئلة: