छोटे किए गए कॉन्टेंट को छोटे किए गए कॉन्टेंट के साथ ऐक्सेस करने के लिए, उस कॉन्टेंट को छिपाया गया हो

Joey Arhar
Joey Arhar

कॉन्टेंट सेक्शन को छोटा करने की सुविधा, यूज़र इंटरफ़ेस (यूआई) का एक सामान्य पैटर्न है. इसे कभी-कभी अकॉर्डियन भी कहा जाता है. हालांकि, पेज में खोजने की सुविधा का इस्तेमाल करके, छोटा किए गए सेक्शन में मौजूद कॉन्टेंट को खोजना मुश्किल हो जाता है. साथ ही, छोटा किए गए क्षेत्रों में टेक्स्ट फ़्रैगमेंट से लिंक नहीं किया जा सकता.

hidden=until-found एचटीएमएल एट्रिब्यूट और beforematch इवेंट की मदद से, इन समस्याओं को हल किया जा सकता है. छिपाए गए कॉन्टेंट के लिए कंटेनर में hidden=until-found जोड़ने पर, ब्राउज़र उस छिपाए गए हिस्से में टेक्स्ट खोज सकता है. साथ ही, मैच होने पर सेक्शन को दिखा सकता है.

ये सुविधाएं, Chrome 102 से उपलब्ध हैं. आइए, जानें कि ये कैसे काम करती हैं.

इसका इस्तेमाल कैसे करें

अगर आपकी वेबसाइट में पहले से ही ऐसे सेक्शन हैं जिन्हें छोटा किया जा सकता है और आपको उन्हें खोजा जा सकने लायक बनाना है, तो सेक्शन को छिपाने वाली स्टाइल को hidden=until-found एट्रिब्यूट से बदलें. अगर आपके पेज में कोई ऐसी दूसरी स्थिति भी है जिसे सेक्शन के दिखने या न दिखने के साथ सिंक करना ज़रूरी है, तो एक beforematch इवेंट लिसनर जोड़ें. यह hidden=until-found एलिमेंट पर, ब्राउज़र के एलिमेंट को दिखाने से ठीक पहले ट्रिगर होगा.

देखें

चेतावनियां

उपयोगकर्ताओं को एक जैसा अनुभव देने के लिए, hidden=until-found कॉन्टेंट को पेज में खोजने की सुविधा का इस्तेमाल किए बिना दिखाया जाना चाहिए. सभी उपयोगकर्ता, पेज में खोजने की सुविधा का इस्तेमाल नहीं करेंगे. साथ ही, hidden=until-found के साथ काम न करने वाले ब्राउज़र पर, पेज में खोजने की सुविधा के बिना छिपे हुए कॉन्टेंट का मूल अनुभव मिलेगा.

अगर आपको यह पक्का करना है कि छिपाया गया कॉन्टेंट, hidden=until-found के साथ काम न करने वाले ब्राउज़र पर भी खोजा जा सकता है, तो उन ब्राउज़र में छिपाए गए कॉन्टेंट को हमेशा बड़ा किया जा सकता है. beforematch इवेंट हैंडलर की मौजूदगी की जांच करके, सुविधा का पता लगाया जा सकता है:

if (!(onbeforematch' in document.body)) {
  // expand all hidden content
}

hidden=until-found, display:none प्रॉपर्टी के बजाय content-visibility:hidden सीएसएस प्रॉपर्टी लागू करता है. display:none प्रॉपर्टी, सामान्य 'छिपा हुआ' एट्रिब्यूट लागू करता है. यह ज़रूरी है, ताकि फ़ाइल बंद होने पर भी उसमें मौजूद कॉन्टेंट को खोजा जा सके. हालांकि, इससे ये समस्याएं भी हो सकती हैं:

  • getBoundingClientRect जैसे कुछ लेआउट एपीआई, यह रिपोर्ट करेंगे कि hidden=until-found एलिमेंट में छिपा कॉन्टेंट जगह लेता है और पेज में उसकी एक पोज़िशन होती है.
  • hidden=until-found एलिमेंट के चाइल्ड नोड रेंडर नहीं किए जाएंगे. हालांकि, hidden=until-found एलिमेंट में अब भी बॉक्स होगा. इसका मतलब है कि सीएसएस प्रॉपर्टी, जैसे कि बॉर्डर और साइज़ का रेंडरिंग पर अब भी असर पड़ेगा.

इसका उदाहरण के तौर पर, यहां दिए गए डेमो में उस एलिमेंट में मार्जिन, बॉर्डर, और पैडिंग जोड़ी गई है जिसमें hidden=until-found लागू किया गया है. छिपाया गया कॉन्टेंट जहां दिखेगा वहां एक बॉक्स होगा, जिसका बॉर्डर स्लेटी रंग का होगा. कॉन्टेंट को दिखाने पर, यह बॉक्स उस कॉन्टेंट से भर जाएगा. यह छिपे हुए एलिमेंट का बॉक्स है.

देखें

इस समस्या से बचने के लिए, कंटेनर में नेस्ट किए गए उस एलिमेंट में बॉर्डर जोड़ें जिसमें hidden=until-found है.

देखें