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

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

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

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

أفضل الممارسات المتعلّقة بكتابة الطلبات

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

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

عدم طلب الإذن عند تحميل الصفحة أو بدون تفاعل المستخدم

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

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

كما أنّ طلب الإذن بدون تفاعل مسبق من المستخدم غير فعّال، ويُعرف ذلك باسم تفعيل المستخدِم المؤقت. تشير بيانات قياس استخدام Chrome إلى أنّ% 77 من طلبات الأذونات على أجهزة الكمبيوتر المكتبي يتم عرضها بدون إشارة إلى نيّة المستخدم، ونتيجةً لذلك، يتم السماح بنسبة% 12 فقط من هذه الطلبات. وبعد تفاعل المستخدم، تزداد معدلات السماح إلى %30.

لا تطلب الإذن إلا بعد أن يتفاعل المستخدم مع الصفحة.

لا تطلب الإذن إلا عندما يفهم المستخدمون السبب

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

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

توفير بدائل

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

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

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

تجنُّب الولايات المحظورة

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

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

الانتباه إلى المحتوى التابع لجهات خارجية

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

متى يجب طلب الإذن؟

في ما يلي بعض الأمثلة على الأوقات المناسبة لطلب الإذن، مع اتّباع أفضل الممارسات:

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

أنماط الرموز البرمجية

يتم منح الإذن باستخدام واجهة برمجة تطبيقات بطرق مختلفة، وذلك حسب واجهة برمجة التطبيقات. تستخدم بعض واجهات برمجة التطبيقات القديمة نموذجًا يطلب فيه المتصفّح تلقائيًا الإذن عند محاولة استخدام واجهة برمجة التطبيقات للمرة الأولى. ومن الأمثلة على ذلك واجهة برمجة التطبيقات Geolocation API عند طلب navigator.geolocation.getCurrentPosition().

try {
  navigator.geolocation.getCurrentPosition((pos) => console.log(pos));
} catch (error) {
  console.error(error);
}

تستخدم واجهات برمجة التطبيقات الأخرى نموذجًا تطلب فيه الإذن صراحةً أولاً باستخدام طريقة ثابتة. من الأمثلة الجيدة على ذلك Notification.requestPermission() للسماح بالإشعارات، أو DeviceOrientationEvent.requestPermission() الأقل شيوعًا، وهو جزء من واجهة برمجة التطبيقات Device Orientation Events API.

تمنح بعض المتصفّحات الإذن تلقائيًا بالوصول إلى واجهات برمجة تطبيقات معيّنة. على سبيل المثال، يسمح Chrome دائمًا بالوصول إلى اتجاه الجهاز، بينما يعرض Safari طلبًا.

const result = await DeviceOrientationEvent.requestPermission();
console.log(`The user's decision when prompted to use the Device Orientation
Events API was: ${result}.`);
if (result === 'granted') {
  /* Use the API. */
}

التحقّق من حالة الأذونات

Browser Support

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 46.
  • Safari: 16.

Source

للتحقّق مما إذا كان بإمكانك استخدام واجهة برمجة تطبيقات معيّنة، استخدِم طريقة navigator.permissions.query() من Permissions API.

const result = await navigator.permissions.query({ name: 'geolocation' });
console.log(`The result of querying for the Geolocation API is:
${result.state}.`);
if (result.state === 'granted') {
  // Use the API.
}

مساعدة المستخدمين على استعادة حساباتهم بعد حظرها

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

تختلف الخطوات الدقيقة لتغيير حالة الإذن حسب المتصفّح، لذا قدِّم أوصافًا مطابقة استنادًا إلى سلسلة وكيل المستخدم للمتصفّحات الأكثر استخدامًا.

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

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

طلب إعادة التحميل بعد تغيير الأذونات باستخدام عناصر التحكّم في الموقع الإلكتروني

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