أفضل الممارسات المتعلّقة بنموذج تسجيل الدخول

استخدِم ميزات المتصفّح الذي يعمل على عدّة أنظمة أساسية لإنشاء نماذج تسجيل دخول آمنة وسهلة الاستخدام ويمكن الوصول إليها.

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

في ما يلي مثال لنموذج تسجيل دخول بسيط يوضح جميع أفضل الممارسات:

قائمة التحقق

استخدام ترميز HTML مفيد

استخدام العناصر المصمّمة للوظيفة: <form> و<label> و<button> وهي تتيح وظائف مضمَّنة في المتصفح وتحسِّن من إمكانية الوصول وتضيف معنى إلى الترميز.

استخدام <form>

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

استخدام <label>

لتصنيف إدخال، استخدِم <label>.

<label for="email">Email</label>
<input id="email" …>

هناك سببان:

  • يؤدي النقر على التصنيف إلى نقل التركيز إلى الإدخال الخاص به. اربط تصنيفًا بأحد الإدخالات باستخدام السمة for للتصنيف في حقل name أو id للإدخال.
  • تعلن برامج قراءة الشاشة عن نص التصنيف عندما يتم التركيز على التصنيف أو إدخال التصنيف.

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

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

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

افتح تأثير خلل موضع التصنيف على جهاز جوّال لرؤيته بنفسك.

استخدام <button>

يمكنك استخدام <button> للأزرار. توفر عناصر الأزرار سلوكًا يسهل الوصول إليه ووظيفة إرسال النموذج المدمجة، ويمكن تصميمها بسهولة. فليس هناك أي جدوى من استخدام <div> أو عنصر آخر يتظاهر بأنه زر.

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

التأكّد من نجاح إرسال النموذج

مساعدة مدراء كلمات المرور في معرفة أنّه تم إرسال نموذج هناك طريقتان للقيام بذلك:

  • انتقِل إلى صفحة مختلفة.
  • يمكنك محاكاة التنقل باستخدام History.pushState() أو History.replaceState()، وإزالة نموذج كلمة المرور.

باستخدام طلب XMLHttpRequest أو fetch، تأكّد من الإبلاغ عن نجاح عملية تسجيل الدخول في الاستجابة والتعامل معه من خلال إزالة النموذج من نموذج العناصر في المستند (DOM) مع الإشارة إلى نجاح المستخدم أيضًا.

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

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

عدم مضاعفة الإدخالات

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

الاستفادة إلى أقصى حد من سمات العناصر

هذا هو المكان الذي يحدث فيه السحر حقًا! تحتوي المتصفحات على العديد من الميزات المضمنة المفيدة التي تستخدم سمات عناصر الإدخال.

الحفاظ على خصوصية كلمات المرور، مع السماح للمستخدمين بالاطِّلاع عليها إذا أرادوا

يجب أن تشتمل إدخالات كلمات المرور على type="password" لإخفاء نص كلمة المرور ومساعدة المتصفّح في معرفة أنّ الإدخال مخصّص لكلمات المرور. (ملاحظة: تستخدم المتصفّحات مجموعة متنوعة من الأساليب لفهم أدوار الإدخال وتحديد ما إذا كنت تريد اقتراح حفظ كلمات المرور أم لا.)

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

نموذج تسجيل الدخول بحساب Google يعرض رمز &quot;إظهار كلمة المرور&quot;
إدخال كلمة المرور من نموذج تسجيل الدخول بحساب Google: باستخدام رمز عرض كلمة المرور والرابط نسيت كلمة المرور

منح مستخدمي الأجهزة الجوّالة لوحة المفاتيح المناسبة

استخدم <input type="email"> لمنح مستخدمي الأجهزة الجوّالة لوحة مفاتيح مناسبة وتفعيل التحقق الأساسي من عنوان البريد الإلكتروني المضمَّن في المتصفح... بدون الحاجة إلى JavaScript.

إذا كنت بحاجة إلى استخدام رقم هاتف بدلاً من عنوان بريد إلكتروني، يعمل <input type="tel"> على تفعيل لوحة مفاتيح الهاتف على الأجهزة الجوّالة. يمكنك أيضًا استخدام السمة inputmode عند الضرورة: يُعتبَر inputmode="numeric" مثاليًا لأرقام التعريف الشخصي. كل ما أردت معرفته عن وضع الإدخال يحتوي على مزيد من التفاصيل.

منع لوحة مفاتيح الأجهزة الجوّالة من حجب زر تسجيل الدخول

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

لقطتَا شاشة تعرضان نموذج تسجيل الدخول على هاتف Android: إحداهما توضّح كيفية حجب زر &quot;إرسال&quot; في لوحة مفاتيح الهاتف.
زر تسجيل الدخول: تراه الآن غير مرئي.

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

لقطة شاشة لنموذج تسجيل الدخول على هاتف Android: لا تخفي لوحة مفاتيح الهاتف زر تسجيل الدخول.
لا تحجب لوحة المفاتيح زر تسجيل الدخول.

الاختبار على مجموعة من الأجهزة

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

لقطات شاشة لنموذج تسجيل الدخول على هواتف iPhone 7 و8 و11 على هاتفَي iPhone 7 وiPhone 8، تحجب لوحة مفاتيح الهاتف زر تسجيل الدخول، وليس على هاتف iPhone 11.
زر تسجيل الدخول: لا يظهر على هواتف iPhone 7 وiPhone 8، ولكن ليس على iPhone 11.

ننصحك باستخدام صفحتين.

تتجنب بعض المواقع (بما في ذلك Amazon وeBay) المشكلة من خلال طلب البريد الإلكتروني/الهاتف وكلمة المرور على صفحتين. يعمل هذا النهج أيضًا على تبسيط التجربة: يتم تكليف المستخدم بشيء واحد فقط في كل مرة.

لقطة شاشة لنموذج تسجيل الدخول على موقع Amazon الإلكتروني: البريد الإلكتروني/الهاتف وكلمة المرور على &quot;صفحتَين&quot; منفصلتَين.
تسجيل الدخول على مرحلتَين: البريد الإلكتروني أو الهاتف، ثم كلمة المرور

يُفضَّل تنفيذ ذلك باستخدام <form> واحد. استخدِم JavaScript لعرض إدخال البريد الإلكتروني فقط مبدئيًا، ثم إخفاءه وعرض إدخال كلمة المرور. إذا كان عليك فرض على المستخدم الانتقال إلى صفحة جديدة بين إدخال عنوان بريده الإلكتروني وكلمة المرور، يجب أن يحتوي النموذج في الصفحة الثانية على عنصر إدخال مخفي يتضمّن قيمة البريد الإلكتروني، للمساعدة في تمكين مدراء كلمات المرور من تخزين القيمة الصحيحة. تقدم أنماط نموذج كلمة المرور التي يتعرف عليها Chromium مثالاً على الرمز.

مساعدة المستخدمين على تجنب إعادة إدخال البيانات

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

يوجد جزءان لذلك:

  1. تساعد السمات autocomplete وname وid وtype المتصفّحات في فهم دور الإدخالات لتخزين البيانات التي يمكن استخدامها لاحقًا لملء البيانات تلقائيًا. للسماح بتخزين البيانات من أجل ميزة الملء التلقائي، تتطلّب المتصفّحات الحديثة أيضًا أن يكون للمدخلات قيمة مستقرة name أو id (لا يتم إنشاؤها عشوائيًا عند كل تحميل صفحة أو نشر موقع إلكتروني)، وأن تكون في شكل <form> مع الزر submit.

  2. تساعد السمة autocomplete المتصفحات في الملء التلقائي للمدخلات بشكل صحيح باستخدام البيانات المخزَّنة.

بالنسبة إلى إدخالات البريد الإلكتروني، استخدِم autocomplete="username"، بما أنّه يتم التعرّف على username من خلال برامج إدارة كلمات المرور في المتصفحات الحديثة، على الرغم من أنّه يجب استخدام type="email" وننصحك باستخدام id="email" وname="email".

عند إدخال كلمات المرور، استخدِم القيمتين autocomplete وid المناسبتَين لمساعدة المتصفّحات في التفريق بين كلمات المرور الجديدة والحالية.

استخدام autocomplete="new-password" وid="new-password" للحصول على كلمة مرور جديدة

  • يُرجى استخدام autocomplete="new-password" وid="new-password" لإدخال كلمة المرور في نموذج الاشتراك، أو استخدام كلمة المرور الجديدة في نموذج تغيير كلمة المرور.

استخدام autocomplete="current-password" وid="current-password" لكلمة مرور حالية

  • يمكنك استخدام autocomplete="current-password" وid="current-password" لإدخال كلمة المرور في نموذج تسجيل الدخول، أو لإدخال كلمة المرور القديمة للمستخدم في نموذج تغيير كلمة المرور. وهذا من شأنه أن يخبر المتصفح بأنك تريد أن يستخدم كلمة المرور الحالية التي تم تخزينها للموقع.

بالنسبة إلى نموذج الاشتراك:

<input type="password" autocomplete="new-password" id="new-password" …>

لتسجيل الدخول:

<input type="password" autocomplete="current-password" id="current-password" …>

دعم مدراء كلمات المرور

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

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

يعرض متصفّح Chrome على الكمبيوتر المكتبي اقتراحات البريد الإلكتروني، ويعرض مدير كلمات المرور، ويملأ كلمة المرور تلقائيًا.

لقطات شاشة لأربع مراحل من عملية تسجيل الدخول إلى متصفِّح Chrome على جهاز كمبيوتر سطح المكتب: إكمال الرسالة الإلكترونية واقتراح الرسالة الإلكترونية ومدير كلمات المرور والملء التلقائي عند الاختيار
الإكمال التلقائي لعملية تسجيل الدخول في Chrome 84

إن أنظمة كلمات مرور المتصفح والملء التلقائي ليست بسيطة. لا يتم توحيد خوارزميات تخمين القيم وتخزينها وعرضها، وتختلف من منصة إلى أخرى. على سبيل المثال، وفق Hidde de Vries: "يكمل مدير كلمات المرور في Firefox استدلاله باستخدام نظام وصفات طعام".

الملء التلقائي: ما يجب أن يعرفه مطورو الويب، ولكن لا يتوفّر لديه مزيد من المعلومات حول استخدام name وautocomplete. تعرض مواصفات HTML جميع القيم المحتملة البالغ عددها 59 قيمة.

تفعيل المتصفّح لاقتراح كلمة مرور قوية

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

إليك كيفية قيام Safari بذلك على سطح المكتب.

لقطة شاشة تُظهر مدير كلمات المرور في متصفّح Firefox على سطح المكتب
مسار اقتراح كلمة المرور في Safari

(يتوفر اقتراح كلمة مرور قوية وفريد في Safari منذ الإصدار 12.0).

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

المساعدة في حماية المستخدمين من الإدخالات المفقودة عن طريق الخطأ

أضِف السمة required إلى حقلَي البريد الإلكتروني وكلمة المرور. تعمل المتصفحات الحديثة على طلب البيانات الناقصة وضبطها تلقائيًا. لا حاجة إلى JavaScript!

لقطة شاشة لمتصفِّح Firefox ومتصفّح Chrome لنظام التشغيل Android تعرض رسالة المطالبة &quot;يُرجى ملء هذا الحقل&quot; للبيانات المفقودة
عرض رسالة مطالبة والتركيز على البيانات غير المتوفّرة على متصفّح Firefox للكمبيوتر المكتبي (الإصدار 76) وChrome لنظام التشغيل Android (الإصدار 83)

تصميم يناسب الأصابع والإبهام

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

التأكد من أن الإدخالات والأزرار كبيرة بما يكفي

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

لقطة شاشة لنموذج غير مصمَّم في متصفِّح Chrome لأجهزة الكمبيوتر المكتبي وChrome لنظام التشغيل Android.

وفقًا لإرشادات تسهيل الاستخدام في نظام التشغيل Android، يبلغ حجم الاستهداف الموصى به لكائنات الشاشة التي تعمل باللمس من 7 إلى 10 ملم. وتقترح إرشادات واجهة Apple مقاس 48×48 بكسل، وتقترح W3C بحجم 44×44 بكسل CSS على الأقل. على هذا الأساس، أضف (على الأقل) مساحة متروكة تبلغ حوالي 15 بكسل لإدخال العناصر والأزرار للجوّال، وحوالي 10 بكسل على سطح المكتب. جرب ذلك باستخدام جهاز محمول حقيقي وإبهام حقيقي أو إصبع حقيقي. يجب أن تكون قادرًا بشكل مريح على النقر على كل من الإدخالات والأزرار.

لم يتم تحديد حجم أهداف النقر بشكلٍ مناسب يمكن أن يساعدك تدقيق Lighthouse على برمجة عملية اكتشاف عناصر الإدخال الصغيرة جدًا.

تصميم يتناسب مع الإبهام

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

تكبير النص بما يكفي

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

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

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

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

لا يستخدم المستند أحجام خطوط قابلة للقراءة يمكن أن يساعدك تدقيق Lighthouse في أتمتة عملية اكتشاف النص الصغير جدًا.

يجب توفير مساحة كافية بين الإدخالات.

أضِف هامشًا كافيًا للقيام بالإدخالات بالطريقة نفسها التي تعمل بها أهداف اللمس. بمعنى آخر، استهدف عرض إصبع الهامش تقريبًا.

تأكَّد من أنّ البيانات التي يتم إدخالها مرئية بوضوح.

ويصعب رؤية نمط الحدود التلقائي للمدخلات. إنها غير مرئية تقريبًا على بعض الأنظمة الأساسية مثل Chrome لنظام Android.

بالإضافة إلى المساحة المتروكة، أضِف حدًا: على خلفية بيضاء، من القواعد العامة الجيدة استخدام #ccc أو لون داكن جدًا.

لقطة شاشة للنموذج المصمّم في Chrome على جهاز Android
نص واضح وحدود إدخال مرئية ومساحة متروكة وهوامش كافية

استخدام ميزات المتصفّح المضمَّنة للتحذير من قيم الإدخال غير الصالحة

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

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

يمكنك استخدام أداة اختيار لغة CSS ":invalid" لتمييز البيانات غير الصالحة. استخدِم :not(:placeholder-shown) لتجنُّب اختيار الإدخالات التي لا تتضمّن محتوى.

input[type=email]:not(:placeholder-shown):invalid {
  color: red;
  outline-color: red;
}

جرِّب طرقًا مختلفة لتمييز الإدخالات ذات القيم غير الصالحة.

استخدام JavaScript عند الضرورة

إيقاف/تفعيل عرض كلمة المرور

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

نموذج تسجيل الدخول بحساب Google يعرض زر &quot;إظهار كلمة المرور&quot; ورابط &quot;نسيت كلمة المرور&quot;.
نموذج تسجيل الدخول بحساب Google: مع إيقاف/تفعيل عرض كلمة المرور ورابط نسيت كلمة المرور

يستخدم الرمز التالي زرًا نصيًا لإضافة وظيفة إظهار كلمة المرور.

HTML:

<section>
  <label for="password">Password</label>
  <button id="toggle-password" type="button" aria-label="Show password as plain text. Warning: this will display your password on the screen.">Show password</button>
  <input id="password" name="password" type="password" autocomplete="current-password" required>
</section>

في ما يلي لغة CSS لجعل الزر يبدو كنص عادي:

button#toggle-password {
  background: none;
  border: none;
  cursor: pointer;
  /* Media query isn't shown here. */
  font-size: var(--mobile-font-size);
  font-weight: 300;
  padding: 0;
  /* Display at the top right of the container */
  position: absolute;
  top: 0;
  right: 0;
}

وJavaScript لعرض كلمة المرور:

const passwordInput = document.getElementById('password');
const togglePasswordButton = document.getElementById('toggle-password');

togglePasswordButton.addEventListener('click', togglePassword);

function togglePassword() {
  if (passwordInput.type === 'password') {
    passwordInput.type = 'text';
    togglePasswordButton.textContent = 'Hide password';
    togglePasswordButton.setAttribute('aria-label',
      'Hide password.');
  } else {
    passwordInput.type = 'password';
    togglePasswordButton.textContent = 'Show password';
    togglePasswordButton.setAttribute('aria-label',
      'Show password as plain text. ' +
      'Warning: this will display your password on the screen.');
  }
}

ها هي النتيجة النهائية:

لقطات شاشة لنموذج تسجيل الدخول مع إظهار نص كلمة المرور &quot;button&quot; في متصفّح Safari على أجهزة Mac وiPhone 7
نموذج تسجيل الدخول باستخدام النص "button" عرض كلمة المرور، وذلك في متصفّح Safari على أجهزة Mac وiPhone 7

إتاحة الوصول إلى مدخلات كلمة المرور

استخدِم aria-describedby لتوضيح قواعد كلمة المرور من خلال منحها معرّف العنصر الذي يصف القيود. توفر برامج قراءة الشاشة نص التسمية ونوع الإدخال (كلمة المرور)، ثم الوصف.

<input type="password" aria-describedby="password-constraints" …>
<div id="password-constraints">Eight or more characters with a mix of letters, numbers and symbols.</div>

عند إضافة وظيفة إظهار كلمة المرور، احرص على تضمين علامة aria-label للتحذير من عرض كلمة المرور. وإلا قد يكشف المستخدمون عن كلمات المرور عن غير قصد.

<button id="toggle-password"
        aria-label="Show password as plain text.
                    Warning: this will display your password on the screen.">
  Show password
</button>

يمكنك الاطّلاع على عمليتَي ARIA أثناء العمل ضمن تأثير Glitch التالي:

يتضمن إنشاء نماذج يمكن الوصول إليها مزيدًا من النصائح للمساعدة في جعل النماذج سهلة الوصول.

التحقُّق في الوقت الفعلي وقبل الإرسال

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

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

اطّلع على مزيد من المعلومات: استخدِم JavaScript لمراجعة صحة أكثر تعقيدًا في الوقت الفعلي.

الإحصاءات وRUM

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

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

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

يمكنك أيضًا التفكير في تنفيذ اختبار A/B لتجربة أساليب مختلفة للاشتراك وتسجيل الدخول وعمليات الطرح على مراحل للتحقق من صحة التغييرات في مجموعة فرعية من المستخدمين قبل إصدار التغييرات لجميع المستخدمين.

الإرشادات العامة

يمكن أن تساعد واجهة المستخدم وتجربة المستخدم المصممة بشكل جيد في تقليل معدّل التراجع عن نموذج تسجيل الدخول:

  • لا تجعل المستخدمين يحاولون تسجيل الدخول! ضع رابطًا لنموذج تسجيل الدخول أعلى الصفحة، باستخدام صياغة مفهومة جيدًا مثل تسجيل الدخول أو إنشاء حساب أو تسجيل.
  • حافِظ على تركيزك. نماذج الاشتراك ليست مكانًا لتشتيت انتباه الأشخاص بالعروض وميزات الموقع الأخرى.
  • تقليل تعقيدات عملية الاشتراك لا تجمع بيانات المستخدمين الأخرى (مثل العناوين أو تفاصيل بطاقات الائتمان) إلا عندما يرى المستخدمون فائدة واضحة من تقديم هذه البيانات.
  • قبل أن يبدأ المستخدمون في نموذج الاشتراك، وضح لهم عرض القيمة. كيف يستفيدون من تسجيل الدخول؟ امنح المستخدمين حوافز ملموسة لإكمال الاشتراك.
  • إذا أمكن، اسمح للمستخدمين بتعريف أنفسهم باستخدام رقم هاتف محمول بدلاً من عنوان البريد الإلكتروني، حيث قد لا يستخدم بعض المستخدمين البريد الإلكتروني.
  • اجعل من السهل على المستخدمين إعادة تعيين كلمة المرور، واجعل الرابط هل نسيت كلمة المرور؟ واضحًا.
  • رابط إلى بنود الخدمة ومستندات سياسة الخصوصية: وضّح للمستخدمين منذ البداية كيفية حماية بياناتهم.
  • عليك إدراج شعار واسم شركتك أو مؤسستك في صفحات الاشتراك وتسجيل الدخول، والتأكّد من تطابُق اللغة والخطوط والأنماط مع بقية صفحات موقعك الإلكتروني. بعض النماذج لا تشعر أنها تنتمي إلى الموقع نفسه الذي ينتمي إليه المحتوى الآخر، خاصةً إذا كانت تحتوي على عنوان URL مختلف تمامًا.

مواصلة التعلّم

تصوير ميغان شيريك على Unsplash.