Mercato

المحتوى

رسائل الخطأ والحالات الفارغة

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

القاعدة: اسم الحقل، اسم الحل

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

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

عقد رسالة الخطأ: ستة شروط

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

  1. قل بالضبط ما الذي تعطّل، لا "حدث خطأ".

  2. قل بالضبط ماذا يفعل المستخدم الآن، لا "حاول مرة أخرى" مجردة بلا خطوة فعلية.

  3. كن محددا: استخدم البيانات الفعلية متى توفرت. "تجاوزت حد البونص بمقدار 15,000 د.ع" أفضل من "تجاوزت الحد" بمسافة كاملة.

  4. لا تعتذر أكثر من اللازم. "نأسف لهذا الخطأ" لا يضيف معلومة، ويأخذ مساحة من الجملة التي تحمل الحل الفعلي.

  5. لا تُلقِ اللوم على المستخدم. "لم تُدخل بيانات صحيحة" تحاسب المستخدم؛ "أدخل رقم هاتف صالح" تعطيه خطوة تالية دون حكم عليه.

  6. لا تستخدم مصطلحات تقنية. "غير صالح" لا يعني شيئا لمن لا يقرأ كود التحقق؛ "يجب أن يتكون رقم الهاتف من 11 رقما" يعني كل شيء.

مثال مفصّل: خطأ رقم الهاتف

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

رقم الهاتف، غير صالح بشكل عام

قبل

رقم غير صالح.

بعد

يجب أن يتكون رقم الهاتف من 11 رقما.

رقم الهاتف، مقدمة غير صحيحة

قبل

لم تدخل بيانات صحيحة.

بعد

أدخل رقم هاتف صالح يبدأ بـ 07.

رقم الهاتف، مستخدم من قبل

قبل

خطأ في التسجيل.

بعد

هذا الرقم مسجَّل بحساب آخر. سجّل الدخول بدلا من ذلك أو استخدم رقما مختلفا.

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

افعل
  • اكتب رسالة منفصلة لكل سبب فشل مختلف، حتى لو كانت كلها في نفس الحقل.
  • اذكر الشرط الدقيق: عدد الأرقام، المقدمة المطلوبة، أو أي قيد فعلي يحكم صحة القيمة.
لا تفعل
  • لا تُعِد استخدام "قيمة غير صالحة" لكل حقل في كل نموذج، وكأن الحقول متطابقة.
  • لا تفترض أن المستخدم يعرف قواعد التحقق الداخلية لمجرد أنها بديهية لفريق التطوير.

قوالب أخطاء ميركاتو

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

الحالةسيّئجيد
التحقق من صحة النموذجقيمة غير صالحة.أدخل رقم هاتف مكوّن من 11 رقما.
تجاوز حد البونصتجاوزت الحد.تجاوزت حد البونص بمقدار 15,000 د.ع. قلّل الكمية أو تواصل مع المكتب.
فشل الاتصال بالشبكةحدث خطأ.لم يتم الاتصال. تحقق من اتصالك بالإنترنت ثم أعد المحاولة.
مادة غير مرتبطةغير مرتبط.هذه المادة غير مرتبطة بأي مذخر. ستظهر في المكتب لمعالجتها.
إلغاء طلبية فرعيةتم الإلغاء.تم إلغاء الطلبية الفرعية من مذخر X. يمكنك إعادة توجيه موادها.
صفحة غير موجودةالصفحة غير موجودة.هذه الصفحة غير متاحة. تحقق من الرابط أو ارجع إلى الرئيسية.
خطأ خادم عامخطأ في الخادم.حدث خطأ غير متوقع. أعد تحميل الصفحة للمحاولة مرة أخرى.

تصميم الخطأ: اللون والموضع والمدة

الخطأ الحاجب (Critical) يستخدم اللون الأحمر مع أيقونة تحذير ودعوة واضحة للفعل: هذا خطأ يمنع المستخدم من المتابعة حتى يُحل. الخطأ غير الحاجب (Warning) يستخدم اللون الأصفر أو الكهرماني مع خطوة تالية واضحة: هذا تنبيه يمكن للمستخدم تجاوزه، لكنه يستحق انتباهه.

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

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

لماذا لا يُستخدم التنبيه العابر أبدا لخطأ نموذج

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

التنبيهات العابرة (Toasts)

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

نجاح: يختفي تلقائيا خلال 4-5 ثوانٍفشل يحتاج إجراء: يبقى ظاهرا

الحالات الفارغة: ثلاثة أجزاء

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

الفراغ ليس نهاية، هو نقطة انطلاق

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

افعل
  • اكتب الحالة الفارغة بنفس دقة رسالة الخطأ: ماذا ينقص، وماذا يفعل المستخدم الآن.
  • اجعل دعوة الفعل زرا حقيقيا قابلا للضغط، لا جملة معلّقة تفترض أن المستخدم يعرف أين يذهب.
لا تفعل
  • لا تكتفِ بـ "لا توجد بيانات" دون أي إشارة إلى الخطوة التالية.
  • لا تستخدم نفس نص الحالة الفارغة لحالتين مختلفتين تماما، مثل عدم وجود طلبيات مقابل عدم وجود نتائج بحث.

قوالب الحالات الفارغة

الجدول التالي يغطي حالات الفراغ الأكثر تكرارا عبر تطبيقات ميركاتو، من مندوب جديد بلا إحصاءات إلى بحث بلا نتائج.

السياقما الذي ينقصدعوة الفعل
لا توجد طلبيات بعدلا توجد طلبيات بعد.ابدأ بإنشاء طلبيتك الأولى
لا توجد نتائج بحثلا توجد نتائج لـ "[كلمة البحث]".جرّب كلمة مختلفة
لا توجد صيدليات في القطاعلا توجد صيدليات في هذه المنطقة.تواصل مع المكتب لإضافة صيدليات
لا توجد إحصاءات بعد (مندوب جديد)لا توجد إحصاءات بعد.ستظهر هنا بعد أول طلبية ترسلها
قائمة مُفلترة بلا نتائج مطابقةلا توجد طلبيات بهذه الحالة.غيّر الفلتر للاطلاع على طلبيات أخرى

متى يُحذف "لماذا يهم ذلك"؟

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

قائمة تحقق سريعة

قبل اعتماد أي رسالة خطأ أو حالة فارغة، راجعها مقابل هذه الأسئلة:

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