वेब अनुमतियों से जुड़े सबसे सही तरीके

अनुमति के लिए प्रॉम्प्ट, वेब का मुख्य तरीका है. इससे लोगों को उन सुविधाओं से बचाया जा सकता है जो उनकी निजता और सुरक्षा के लिए खतरनाक हो सकती हैं. ब्राउज़र, इस बात की पुष्टि करते हैं कि कोई व्यक्ति किसी खास वेबसाइट पर किसी सुविधा को अनुमति देना चाहता है. कई एपीआई के लिए अनुमतियां लागू की जा सकती हैं, इनमें मीडिया कैप्चर (कैमरा और माइक्रोफ़ोन), जियोलोकेशन, स्टोरेज ऐक्सेस, MIDI, और सूचनाएं शामिल हैं.

Chrome के इस्तेमाल के आंकड़ों और उपयोगकर्ता रिसर्च के आधार पर, लोगों को अनुमति के लिए प्रॉम्प्ट दिखाते समय इन तरीकों का पालन करें. इन तरीकों का पालन करने पर, लोगों को कम गैर-ज़रूरी प्रॉम्प्ट दिखेंगे. इससे, ब्लॉक करने के फ़ैसले कम लिए जाएंगे.

इस दस्तावेज़ में, अनुमति के लिए ज़रूरी एपीआई के लिए कुछ कोड पैटर्न दिए गए हैं. साथ ही, इसमें यह भी बताया गया है कि लोगों को ब्लॉक की गई स्थिति से बाहर निकलने में कैसे मदद की जा सकती है.

प्रॉम्प्ट दिखाने के सबसे सही तरीके

उपयोगकर्ता के इंटरैक्शन के बाद, अनुमति के लिए अनुरोध करें. इससे लोगों को यह समझने में मदद मिलती है कि अनुमति क्यों मांगी जा रही है और उन्हें ऐक्सेस की अनुमति देने से क्या फ़ायदा मिलेगा.

जहां तक हो सके, एक ही काम को पूरा करने के लिए अन्य तरीके उपलब्ध कराएं. अनुमति के लिए अनुरोध करने का सही समय चुनकर, इस बात की संभावना कम हो जाती है कि आपके उपयोगकर्ता ब्लॉक की गई स्थिति में फंस जाएं और उन्हें इससे बाहर निकलने में मुश्किल हो.

पेज लोड होने पर या उपयोगकर्ता के इंटरैक्शन के बिना, अनुमति के लिए अनुरोध न करें

पेज लोड होने पर अनुमति के लिए अनुरोध करना, किसी ग्राहक से संवेदनशील जानकारी मांगने जैसा है. जैसे, किसी दुकान में घुसते ही उससे संवेदनशील जानकारी मांगना. अनुमति के लिए प्रॉम्प्ट दिखना, एक खराब अनुभव है. ऐसा तब होता है, जब न्यूज़लेटर के लिए साइन अप करने और कुकी की सहमति के लिए कई अन्य प्रॉम्प्ट भी दिखते हैं. लोगों को यह समझ में नहीं आएगा कि उनसे अनुमति क्यों मांगी जा रही है और उन्हें इससे क्या फ़ायदा मिलेगा.

अगर आपका वेब ऐप्लिकेशन, किसी सुविधा के ऐक्सेस के बिना काम नहीं कर सकता, तो लोगों को यह समझने का मौका दें कि इसकी ज़रूरत क्यों है. उदाहरण के लिए, अनुमति के लिए प्रॉम्प्ट से पहले, यह बताएं कि प्रॉम्प्ट की ज़रूरत क्यों है और लोगों को विकल्प दें. जैसे, एक ही काम को पूरा करने के लिए अन्य तरीके उपलब्ध कराएं. अगर आपको पेज लोड होने के अलावा, अनुमति के लिए अनुरोध करने का कोई बेहतर समय नहीं मिल रहा है, तो इस गाइड में कुछ उदाहरण दिए गए हैं.

उपयोगकर्ता के इंटरैक्शन से पहले, अनुमति के लिए अनुरोध करना भी असरदार नहीं है. इसे अस्थायी उपयोगकर्ता ऐक्टिवेशन कहा जाता है. Chrome की टेलीमेट्री से पता चलता है कि डेस्कटॉप पर, अनुमति के लिए 77% प्रॉम्प्ट, उपयोगकर्ता के मकसद के सिग्नल के बिना दिखाए जाते हैं. इसलिए, ऐसे सिर्फ़ 12% प्रॉम्प्ट को अनुमति दी जाती है. उपयोगकर्ता के इंटरैक्शन के बाद, अनुमति देने की दर 30% तक बढ़ जाती है.

उपयोगकर्ता के पेज से इंटरैक्ट करने के बाद ही, अनुमति के लिए अनुरोध करें.

अनुमति के लिए सिर्फ़ तब अनुरोध करें, जब लोगों को यह समझ में आए कि अनुमति क्यों मांगी जा रही है

अनुमति के फ़ैसले अक्सर निजता से जुड़े फ़ैसले होते हैं. कॉन्टेक्चुअल इंटिग्रिटी फ़्रेमवर्क के आधार पर, हमें पता है कि निजता से जुड़े फ़ैसले, कॉन्टेक्स्ट के हिसाब से अलग-अलग होते हैं. यह समझना ज़रूरी है कि ऐक्सेस क्यों ज़रूरी है. आपको सिर्फ़ उन सुविधाओं के लिए अनुरोध करना चाहिए जिनकी ज़रूरत आपको वैल्यू देने के लिए है. साथ ही, लोगों को यह भी लगना चाहिए कि उन्हें वैल्यू मिलेगी. इसके अलावा, अनुमति के लिए तब अनुरोध करें, जब लोगों को यह समझ में आए कि सुविधा क्यों मददगार है. लोगों के लिए, इस्तेमाल के कॉन्टेक्स्ट को समझना आसान बनाएं.

हमारी उपयोगकर्ता रिसर्च से पता चलता है कि जब लोगों को यह समझ में आता है कि कोई साइट ऐक्सेस के लिए अनुरोध क्यों कर रही है और उन्हें कोई फ़ायदा भी मिलता है, तो वे ऐक्सेस की अनुमति देने की ज़्यादा संभावना रखते हैं. हमें यह भी पता चला है कि लोग, अपरिचित साइटों को पहले एक्सप्लोर करना चाहते हैं, ताकि उन्हें यह बेहतर तरीके से समझ में आ सके कि ऐक्सेस की अनुमति देने के बदले उन्हें क्या वैल्यू मिल सकती है. इस दौरान, वे अक्सर अनुमति के लिए प्रॉम्प्ट को खारिज कर देते हैं या अनदेखा कर देते हैं. एक बार की अनुमतियों के मामले में, वे पहली बार सिर्फ़ एक बार के लिए अनुमति दे सकते हैं. अपने ऐप्लिकेशन में इन व्यवहारों के लिए सहायता उपलब्ध कराएं.

अन्य विकल्प उपलब्ध कराएं

हो सकता है कि कुछ सुविधाओं का नतीजा, लोगों के लिए मददगार न हो. उदाहरण के लिए, जीपीएस सेंसर के बिना डेस्कटॉप डिवाइस का जियोलोकेशन, गलत जगह की जानकारी दिखा सकता है. ऐसा इसलिए हो सकता है, क्योंकि वह व्यक्ति वीपीएन से कनेक्ट है. अन्य लोग, क्लिपबोर्ड के ऐक्सेस की अनुमति नहीं देना चाहेंगे, क्योंकि वे कंट्रोल में रहना चाहते हैं और कीबोर्ड शॉर्टकट के कॉम्बिनेशन की मदद से, इन इवेंट को मैन्युअल तरीके से ट्रिगर करना चाहते हैं. ऐसी स्थितियों में, एक ही नतीजे पाने के लिए अन्य तरीका उपलब्ध कराएं.

उदाहरण के लिए, अगर जियोलोकेशन की अनुमति के लिए अनुरोध किया जा रहा है, तो एक टेक्स्ट फ़ील्ड उपलब्ध कराएं. इसमें लोग, पिन कोड या पता डाल सकते हैं. कीबोर्ड शॉर्टकट या कॉन्टेक्स्ट मेन्यू की मदद से, एलिमेंट को चुनने और क्लिपबोर्ड पर कॉपी करने की अनुमति दें. सूचनाओं के लिए, पुश सूचनाओं के बजाय ईमेल की सुविधा दें.

एक काम का पैटर्न यह है कि अन्य यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल, इस बारे में जानकारी देने के लिए भी किया जाए कि ऐक्सेस क्यों फ़ायदेमंद हो सकता है. जिन लोगों को जियोलोकेशन एपीआई को ट्रिगर करने वाले बटन के बगल में, जगह की जानकारी डालने का विकल्प दिखता है, उन्हें लगता है कि उनके पास कंट्रोल है. ऐसा इसलिए, क्योंकि वे समझते हैं कि वे अपना पता टाइप कर सकते हैं. इसी तरह, अगर पुश या ईमेल के ज़रिए सूचनाएं पाने या कैमरा और माइक्रोफ़ोन के ऐक्सेस की अनुमति दिए बिना किसी मीटिंग में शामिल होने का विकल्प मिलता है, तो लोगों को ट्रेडऑफ़ समझ में आते हैं.

ब्लॉक की गई स्थितियों से बचें

जब कोई व्यक्ति, अनुमति के लिए ज़रूरी सुविधा के ऐक्सेस को हमेशा के लिए अस्वीकार कर देता है, तो ब्राउज़र उस फ़ैसले का सम्मान करते हैं. अगर ऐक्सेस के लिए प्रॉम्प्ट दिखाना जारी रखा जा सकता है, तो नुकसान पहुंचाने वाली साइटें, लोगों को प्रॉम्प्ट से परेशान कर सकती हैं. ब्लॉक की गई स्थिति से बाहर निकलने के लिए, जान-बूझकर कोशिश करनी पड़ती है. ऐसी स्थितियों में अनुमति के लिए अनुरोध करने से बचें, जहां लोगों के ऐक्सेस की अनुमति देने की संभावना कम हो.

ऐसा करने का एक सामान्य तरीका, प्री-प्रॉम्प्ट का इस्तेमाल करना है. इसमें, लोगों को यह बताया जाता है कि क्या होने वाला है और आपके ऐप्लिकेशन को उस सुविधा की ज़रूरत क्यों है जिसके लिए आप अनुरोध करने वाले हैं. आपको ब्राउज़र के अनुमति के लिए प्रॉम्प्ट को सिर्फ़ तब ट्रिगर करना चाहिए, जब लोग ऐसे प्री-प्रॉम्प्ट पर सकारात्मक प्रतिक्रिया दें. ऐसी स्थितियां हो सकती हैं जहां लोगों को उस स्थिति से बाहर निकलने की ज़रूरत हो सकती है. इस बारे में ज़्यादा जानने के लिए, सेक्शन लोगों को ब्लॉक की गई स्थिति से बाहर निकलने में मदद करना देखें.

तीसरे पक्ष के कॉन्टेंट पर ध्यान दें

अनुमति के लिए प्रॉम्प्ट के अनचाहे सोर्स के बारे में जानें. आपकी साइट पर मौजूद तीसरे पक्ष के स्क्रिप्ट, अनुमति के लिए अनचाहे प्रॉम्प्ट ट्रिगर कर सकते हैं. इससे लोगों के अनुभव पर असर पड़ सकता है. खास तौर पर, तब जब प्रॉम्प्ट, सबसे सही तरीकों के मुताबिक न हों. लोगों के अनुभव को कंट्रोल में रखने के लिए, अपने कोड में जोड़ी गई तीसरे पक्ष की किसी भी लाइब्रेरी और स्क्रिप्ट का दस्तावेज़ पढ़ें.

अनुमति के लिए कब अनुरोध करें

यहां कुछ उदाहरण दिए गए हैं, जिनमें अनुमति के लिए अनुरोध करना सही रहता है. इनमें सबसे सही तरीकों का पालन किया गया है:

  • जब कोई व्यक्ति, मैन्युअल तरीके से पता डालते समय, फ़ॉर्म फ़ील्ड के बगल में मौजूद मेरी जगह की जानकारी का इस्तेमाल करें पर क्लिक करता है.
  • जब कोई व्यक्ति, किसी वीडियो चैनल या पोस्ट की सदस्यता लेता है और उस डायलॉग पर 'हां' बटन पर क्लिक करता है जिसमें बताया गया है कि अपडेट, ईमेल या सूचनाओं के तौर पर डिलीवर किए जा सकते हैं.
  • जब कोई व्यक्ति, किसी ऐसे पेज पर पहुंचता है जो उसे वीडियो कॉल में शामिल होने के लिए तैयार करता है और प्री-प्रॉम्प्ट में 'हां' में जवाब देता है कि वह दिखना और सुनाई देना चाहता है. Google Meet के केस स्टडी में ज़्यादा पढ़ें .

कोड पैटर्न

किसी एपीआई का इस्तेमाल करने की अनुमति, एपीआई के हिसाब से अलग-अलग तरीकों से दी जाती है. कुछ पुराने एपीआई, ऐसे मॉडल का इस्तेमाल करते हैं जिसमें पहली बार एपीआई का इस्तेमाल करने की कोशिश करने पर, ब्राउज़र अपने-आप अनुमति के लिए अनुरोध करता है. इसका एक उदाहरण, जियोलोकेशन एपीआई है. यह navigator.geolocation.getCurrentPosition() को कॉल करने पर काम करता है.

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

अन्य एपीआई, ऐसे मॉडल का इस्तेमाल करते हैं जिसमें आपको पहले किसी स्टैटिक तरीके से अनुमति के लिए साफ़ तौर पर अनुरोध करना होता है. इसका एक अच्छा उदाहरण, Notification.requestPermission() सूचनाओं की अनुमति देने के लिए है. इसके अलावा, कम इस्तेमाल होने वाला DeviceOrientationEvent.requestPermission(), भी है. यह डिवाइस ओरिएंटेशन इवेंट एपीआई का हिस्सा है.

कुछ ब्राउज़र, कुछ एपीआई को अपने-आप अनुमति दे देते हैं. उदाहरण के लिए, 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. */
}
navigator.permissions.request()

अनुमतियों की स्थिति देखना

Browser Support

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

Source

यह देखने के लिए कि किसी एपीआई का इस्तेमाल किया जा सकता है या नहीं, Permissions API से navigator.permissions.query() तरीके का इस्तेमाल करें.

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 जैसे अन्य ब्राउज़र में भी मिलते-जुलते यूज़र इंटरफ़ेस (यूआई) मौजूद हैं.