ब्राउज़र फ़ीचर चेकर

ब्राउज़र में चलता है नया वेब यूटिलिटीज़

एक क्लिक में आप जिस ब्राउज़र में हैं उससे पूछा जाता है कि वह असल में कौन-से फ़ीचर देता है: service workers, WebAssembly, WebGPU और WebAuthn जैसे 34 वेब API, CSS.supports() से 16 CSS फ़ीचर, 12 ऑडियो, वीडियो और इमेज फ़ॉर्मेट, स्टोरेज, और पाँच अनुमतियों की स्थिति — बिना किसी अनुमति-प्रॉम्प्ट के। नतीजे हर समूह में गिने जाते हैं और बग टिकट के लिए टेक्स्ट रिपोर्ट के रूप में कॉपी या CSV में डाउनलोड किए जा सकते हैं। कहीं कुछ नहीं भेजा जाता।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

फ़ीचर डिटेक्शन क्या है, और यह ब्राउज़र का नाम देखने से बेहतर क्यों है?

फ़ीचर डिटेक्शन का मतलब है ब्राउज़र से सीधे पूछना कि वह कोई API या CSS फ़ीचर देता है या नहीं — navigator.serviceWorker मौजूद है या नहीं, किसी घोषणा पर CSS.supports() क्या कहता है, किसी codec पर HTMLMediaElement.canPlayType() क्या जवाब देता है — यूज़र-एजेंट स्ट्रिंग से अंदाज़ा लगाने के बजाय। यह असली ब्राउज़र, उसके वर्शन और सेटिंग्स को दिखाता है, पॉलिसी या प्राइवेसी मोड से बंद किए फ़ीचर समेत। हाँ वाले जवाब का मतलब है कि फ़ीचर उपलब्ध है, यह नहीं कि उसका हर हिस्सा काम करता है, इसलिए ज़रूरी रास्तों को असली डिवाइस पर टेस्ट करना फिर भी ज़रूरी है।

ब्राउज़र फ़ीचर चेकर कैसे इस्तेमाल करें

  1. यह पेज उसी ब्राउज़र में खोलें जिसे जाँचना है — जहाँ बग रिपोर्ट हुआ, या आपकी टेस्ट लैब का डिवाइस।
  2. «यह ब्राउज़र जाँचें» दबाएँ। जाँच में एक पल लगता है और कोई प्रॉम्प्ट नहीं दिखता।
  3. पहले सारांश पढ़ें, फिर समूह: «सपोर्टेड», «संभवतः» और «अनुमति है» का मतलब फ़ीचर मौजूद है; «सपोर्टेड नहीं», «अनुमति नहीं» और «जाँच नहीं हो सकी» का मतलब वह नहीं है या पक्का नहीं हो सका।
  4. «रिपोर्ट कॉपी करें» या «CSV डाउनलोड करें» दबाएँ और नतीजा बग रिपोर्ट या टेस्ट रिकॉर्ड के साथ लगाएँ।

ब्राउज़र फ़ीचर चेकर की खूबियाँ

  • ऑब्जेक्ट ख़ुद पहचानकर जाँचे गए 34 वेब API — service workers, WebAssembly, WebGL और WebGPU, WebAuthn, Web Share, Bluetooth, USB, Serial, View Transitions, Popover और भी
  • CSS.supports() से जाँचे गए 16 CSS फ़ीचर: grid और subgrid, container queries, :has(), nesting, color-mix(), OKLCH, anchor positioning, cascade layers और दूसरे
  • 12 मीडिया फ़ॉर्मेट: canPlayType() से H.264, HEVC, VP9 और AV1 वीडियो, AAC, Opus, MP3 और FLAC ऑडियो, छोटी एम्बेडेड इमेज डिकोड करके WebP और AVIF, साथ में Media Source Extensions और Picture-in-Picture
  • स्टोरेज: कुकीज़, localStorage और sessionStorage पर लिखने की जाँच, IndexedDB, Cache API, origin private file system, इस साइट का स्टोरेज कोटा और क्या स्टोरेज स्थायी है
  • Permissions API से पढ़ी गई पाँच अनुमतियों की स्थिति, जो कभी प्रॉम्प्ट नहीं दिखाती
  • हर समूह का सारांश, हर पंक्ति के पीछे की सटीक जाँच, और पेज का संदर्भ (secure context, cross-origin isolation, कम मोशन, कलर स्कीम)
  • बग टिकट के लिए नतीजे टेक्स्ट रिपोर्ट के रूप में कॉपी करें या CSV में डाउनलोड करें; कहीं कुछ नहीं भेजा जाता

इनपुट और आउटपुट

इनपुट

  • ब्राउज़र ख़ुद — कुछ टाइप नहीं करना; «यह ब्राउज़र जाँचें» दबाने पर जाँच चलती है।
  • पेज का संदर्भ: secure context (HTTPS), cross-origin isolation और साइट की Permissions-Policy, जिन पर कुछ फ़ीचर निर्भर करते हैं।

आउटपुट

  • सारांश — हर समूह में सपोर्टेड, चलने लायक, उपलब्ध या अनुमति वाली पंक्तियाँ, कुल पंक्तियों के मुक़ाबले।
  • पाँच टेबल — वेब API, CSS, मीडिया फ़ॉर्मेट, स्टोरेज और अनुमति की स्थिति — फ़ीचर, नतीजे और जाँच के तरीके के साथ।
  • इस ब्राउज़र के बारे में — यूज़र एजेंट, secure context, cross-origin isolation, टच पॉइंट, पिक्सेल अनुपात, कम मोशन और कलर स्कीम की पसंद।
  • रिपोर्ट कॉपी करें और CSV डाउनलोड करें — वही नतीजे टेक्स्ट या CSV फ़ाइल के रूप में।

ब्राउज़र फ़ीचर चेकर का उदाहरण

एक मौजूदा डेस्कटॉप ब्राउज़र

इनपुट:

यह ब्राउज़र जाँचें

आउटपुट:

वेब API 30/34 सपोर्टेड · CSS 16/16 सपोर्टेड · मीडिया फ़ॉर्मेट 10/12 चलने या डिकोड होने लायक · स्टोरेज 7/8 उपलब्ध · अनुमति की स्थिति 1/5 अनुमति है
WebGPU — सपोर्टेड — 'gpu' in navigator
HEVC / H.265 वीडियो — सपोर्टेड नहीं — video/mp4; codecs="hvc1.1.6.L93.B0"
AVIF इमेज — सपोर्टेड — 2×2 AVIF डिकोड करके
नोटिफ़िकेशन — पूछेगा — permissions.query({ name: 'notifications' })

ब्राउज़र फ़ीचर चेकर के नतीजे कैसे पढ़ें

«सपोर्टेड» का मतलब है कि ब्राउज़र API देता है या CSS मानता है; यह साबित नहीं करता कि हर हिस्सा काम करता है। इसे «यहाँ टेस्ट करने लायक» समझें, और जहाँ ज़रूरी हो असली फ़ीचर टेस्ट करें।

«संभवतः» और «शायद» किसी मीडिया फ़ॉर्मेट पर ब्राउज़र का अपना भरोसा हैं। «संभवतः» मज़बूत हाँ है; «शायद» का अक्सर मतलब है कि कंटेनर पहचाना गया पर codec डिवाइस पर निर्भर है।

«अनुमति है», «अनुमति नहीं» और «पूछेगा» इस साइट के लिए अनुमतियों की मौजूदा स्थिति हैं; «पूछेगा» यानी कोई पेज पहली बार माँगेगा तो प्रॉम्प्ट दिखेगा।

आम पेजों पर SharedArrayBuffer अक्सर «सपोर्टेड नहीं» दिखता है: ब्राउज़र इसे सिर्फ़ cross-origin isolated पेजों को देते हैं, जो «इस ब्राउज़र के बारे में» में दिखता है।

स्टोरेज पर «सेटिंग से ब्लॉक» का मतलब है कि ब्राउज़र इस साइट का डेटा रखने से मना करता है, जैसे कोई प्राइवेसी सेटिंग साइट डेटा ब्लॉक करती हो।

ब्राउज़र फ़ीचर चेकर कब इस्तेमाल करें

  • टेस्टर या ग्राहक के ब्राउज़र की सटीक क्षमताएँ बग रिपोर्ट के साथ लगाना।
  • कम्पैटिबिलिटी टेस्ट प्लान चलाने से पहले टेस्ट लैब के डिवाइस की जाँच।
  • पक्का करना कि आपकी रिलीज़ जिस फ़ीचर पर टिकी है — WebGPU, container queries, AVIF — वह आपकी सपोर्ट सूची के ब्राउज़रों में है।
  • देखना कि किसी कंपनी पॉलिसी, प्राइवेसी सेटिंग या एक्सटेंशन ने कोई फ़ीचर बंद तो नहीं किया।

समस्या निवारण

  • कई नतीजे «जाँच नहीं हो सकी» कहते हैं — किसी स्क्रिप्ट ब्लॉकर या सख़्त प्राइवेसी एक्सटेंशन ने दख़ल दिया; इस पेज पर स्क्रिप्ट की अनुमति दें या साफ़ प्रोफ़ाइल में जाँचें।
  • सक्षम कंप्यूटर पर WebGL «सपोर्टेड नहीं» दिखता है — ब्राउज़र सेटिंग्स में हार्डवेयर एक्सेलरेशन बंद है, या ब्राउज़र ने ग्राफ़िक्स ड्राइवर को ब्लॉकलिस्ट किया है।
  • स्टोरेज «सेटिंग से ब्लॉक» दिखाता है — इस साइट का डेटा ब्लॉक है; ब्राउज़र की कुकी और साइट-डेटा सेटिंग्स देखें।
  • कोई अनुमति «पूछा नहीं जा सकता» दिखाती है — यह ब्राउज़र Permissions API में उस अनुमति का नाम सपोर्ट नहीं करता; इससे सेटिंग के बारे में कुछ पता नहीं चलता।

ब्राउज़र फ़ीचर चेकर के बारे में अक्सर पूछे जाने वाले सवाल

caniuse.com पर फ़ीचर देखने से यह कैसे अलग है?

caniuse.com बताता है कि आमतौर पर कौन-से ब्राउज़र वर्शन किसी फ़ीचर को सपोर्ट करते हैं। यह पेज आपके सामने वाले ब्राउज़र से ही पूछता है, इसलिए जवाब में आपका सटीक वर्शन, उसकी सेटिंग्स, कंपनी की पॉलिसी, प्राइवेसी मोड और फ़ीचर बंद करने वाले एक्सटेंशन भी झलकते हैं।

क्या «सपोर्टेड» का मतलब है कि फ़ीचर पूरी तरह काम करता है?

इसका मतलब है कि ब्राउज़र उसे उपलब्ध कराता है: API मौजूद है, या CSS.supports() घोषणा को मानता है। फ़ीचर के कुछ हिस्से फिर भी अधूरे या ख़राब हो सकते हैं, और WebGPU या Web Bluetooth जैसे कुछ API को इस्तेमाल के समय हार्डवेयर या अनुमति भी चाहिए। ज़रूरी रास्ते को असली डिवाइस पर ख़ुद टेस्ट करें।

क्या जाँच कैमरा, माइक्रोफ़ोन या लोकेशन की अनुमति माँगती है?

नहीं। अनुमतियों की स्थिति Permissions API से पढ़ी जाती है, जो बिना प्रॉम्प्ट दिखाए बताता है कि अनुमति है, नहीं है या «पूछेगा», और कोई कैमरा, माइक्रोफ़ोन या लोकेशन नहीं खुलता। कैमरा, माइक्रोफ़ोन और लोकेशन सूची में हैं ही नहीं, क्योंकि यह साइट अपने पेजों पर उन्हें बंद रखती है।

फ़ॉर्मेट के लिए «संभवतः» और «शायद» का क्या मतलब है?

ये canPlayType() से ब्राउज़र के अपने जवाब हैं: «संभवतः» यानी उसे वह फ़ॉर्मेट चलने की उम्मीद है, «शायद» यानी चल सकता है, और कोई जवाब न होना यानी नहीं चला सकता। चलना सिर्फ़ असली फ़ाइल चलाकर ही पक्का होता है। WebP और AVIF एक छोटी एम्बेडेड इमेज डिकोड करके जाँचे जाते हैं।

क्या कुछ सर्वर पर भेजा जाता है?

नहीं। हर जाँच आपके ब्राउज़र में चलती है, इमेज की जाँच पेज में एम्बेड की गई तस्वीरें डिकोड करती है, और रिपोर्ट आपके क्लिपबोर्ड पर कॉपी होती है या डाउनलोड होती है, कभी अपलोड नहीं।

एक ही कंप्यूटर के दो ब्राउज़र अलग नतीजे क्यों देते हैं?

हर ब्राउज़र इंजन अपने समय पर फ़ीचर लाता है, और सेटिंग्स, पॉलिसी या एक्सटेंशन किसी फ़ीचर को एक ब्राउज़र में बंद कर सकते हैं, दूसरे में नहीं। इसीलिए पेज ब्राउज़र का नाम देखने की जगह ब्राउज़र को ही जाँचता है।

तकनीकी नोट्स

फ़ीचर डिटेक्शन MDN की सलाह और W3C व WHATWG स्पेसिफ़िकेशन का पालन करता है: फ़ीचर जो ऑब्जेक्ट या मेथड जोड़ता है उसे जाँचें ('serviceWorker' in navigator, typeof WebAssembly.instantiate), ब्राउज़र का नाम नहीं। WebGL और WebGL 2 को canvas से context माँगकर जाँचा जाता है, जिसे तुरंत छोड़ दिया जाता है।

CSS फ़ीचर CSS Conditional Rules स्पेसिफ़िकेशन में परिभाषित CSS.supports() से जाँचे जाते हैं: यह बताता है कि ब्राउज़र किसी घोषणा या selector() को पार्स करता है या नहीं — यह नहीं कि फ़ीचर का हर हिस्सा लागू है। Cascade layers CSSLayerBlockRule इंटरफ़ेस से पहचानी जाती हैं, क्योंकि at-rule को CSS.supports() में नहीं भेजा जा सकता।

वीडियो और ऑडियो फ़ॉर्मेट WHATWG HTML Standard के HTMLMediaElement.canPlayType() से RFC 6381 की codec स्ट्रिंग के साथ जाँचे जाते हैं, जिसका जवाब "probably", "maybe" या कुछ नहीं होता है। WebP और AVIF पेज में एम्बेड की गई 2 × 2 इमेज से डिकोड होते हैं, इसलिए कोई फ़ाइल नहीं मँगाई जाती।

अनुमतियों की स्थिति navigator.permissions.query() से आती है, जो विज़िटर से कुछ पूछे बिना granted, denied या prompt लौटाता है; जिस नाम को ब्राउज़र नहीं जानता वह «पूछा नहीं जा सकता» दिखता है। स्टोरेज कोटा और स्थायित्व StorageManager के estimate() और persisted() मेथड से आते हैं।

सीमाएँ और कार्यप्रणाली

डिटेक्शन बताता है कि ब्राउज़र क्या देता है, यह नहीं कि वह कितना अच्छा काम करता है: अधूरे इम्प्लीमेंटेशन, बग और परफ़ॉर्मेंस नहीं मापे जाते।

कैमरा, माइक्रोफ़ोन और लोकेशन की अनुमतियाँ सूची में नहीं हैं, क्योंकि इस साइट की Permissions-Policy उन्हें इसके पेजों पर बंद रखती है; API वाली पंक्तियाँ सिर्फ़ यह दिखाती हैं कि ब्राउज़र उन्हें देता है।

codec के जवाब ब्राउज़र से आते हैं और ऑपरेटिंग सिस्टम व हार्डवेयर पर निर्भर हो सकते हैं; चलना सिर्फ़ असली फ़ाइल चलाकर पक्का होता है।

नतीजे इस ब्राउज़र की इस पल की तस्वीर हैं: कोई अपडेट, सेटिंग या एक्सटेंशन उन्हें बदल सकता है।

सुरक्षा और गोपनीयता

हर जाँच आपके ब्राउज़र में चलती है और Mutqan सर्वर या किसी और को कुछ नहीं भेजा जाता; इमेज की जाँच पेज में एम्बेड की गई तस्वीरें डिकोड करती है।

रिपोर्ट में आपका यूज़र एजेंट और कम मोशन जैसी पसंद शामिल हैं। यह सिर्फ़ वहीं जाती है जहाँ आप इसे कॉपी या डाउनलोड करें — सार्वजनिक टिकट में लगाने से पहले इसे देख लें।

संदर्भ

  • Implementing feature detection — MDNMDN Web Docs (Mozilla)कोड को ब्राउज़र के नाम के बजाय फ़ीचर ख़ुद (कोई ऑब्जेक्ट, मेथड, CSS.supports()) क्यों जाँचना चाहिए, डिटेक्शन के आम तरीक़ों के साथ।
  • CSS: supports() static method — MDNMDN Web Docs (Mozilla)CSS.supports(): ब्राउज़र किसी प्रॉपर्टी और वैल्यू, या selector() शर्त को सपोर्ट करता है या नहीं, जैसा CSS Conditional Rules में परिभाषित है।
  • HTMLMediaElement: canPlayType() method — MDNMDN Web Docs (Mozilla)पेज कैसे पूछता है कि कोई मीडिया टाइप और codec चल सकता है या नहीं, और "probably", "maybe" व ख़ाली स्ट्रिंग जवाबों का मतलब।