← Back to HTML Course | Chapter 8: Modern HTML & Components | Lesson 9 of 10

HTML Data Attributes

सोचिए आपने अपने ऑफिस के लिए एक filing cabinet खरीदी। हर दराज पर स्टैंडर्ड कैटेगरी का लेबल लगा है, जैसे Invoices या Contracts। लेकिन अंदर, आप कुछ खास फाइलों पर अपने खुद के प्राइवेट कलर-कोडेड डॉट लेबल चिपकाने का फैसला करते हैं, ताकि उन्हें तुरंत ढूंढ सकें। HTML data attributes वही प्राइवेट लेबल हैं। HTML टैग्स के साथ href या src जैसे स्टैंडर्ड एट्रिब्यूट्स आते हैं, लेकिन कभी-कभी आप किसी टैग के अंदर अपनी खुद की कस्टम जानकारी स्टोर करना चाहते हैं, जैसे एक यूनीक डेटाबेस ID या एक प्रोग्रेस प्रतिशत। Data attributes आपको कस्टम, प्राइवेट वैरिएबल्स को सीधे अपने HTML टैग्स के अंदर एम्बेड करने देते हैं, जिससे CSS या JavaScript के ज़रिए उन्हें पढ़ना और मैनिपुलेट करना आसान हो जाता है।
Syntax
markup
<tagname data-name="value">content</tagname>
<script>
  element.dataset.name;
</script>

Custom Data Attributes

Data attributes आपको वैलिडेशन नियमों को तोड़े बिना स्टैंडर्ड HTML टैग्स के अंदर कस्टम जानकारी स्टोर करने देते हैं। हर कस्टम data attribute को data- प्रीफिक्स से शुरू होना चाहिए, उसके बाद आपका कस्टम नाम lowercase में आना चाहिए।

Note:
  • अपने कस्टम data attributes के लिए स्पष्ट, विवरणात्मक नाम चुनें, जैसे data-tool-type या data-status।
  • Accepted values:
  • data-* — name is data- plus lowercase letters, digits, hyphens
  • Value — any string
  • Read via element.dataset (camelCase) or getAttribute
Warning: अपने कस्टम data attribute नामों में अपरकेस अक्षर या स्पेस इस्तेमाल न करें, क्योंकि इससे validation टूट जाएगा।

उदाहरण: Custom Data Attributes

markup
<div data-tool-type="calculator" data-status="active">Widget</div>

CSS के साथ Data Attributes पढ़ना

आप स्टैंडर्ड attribute सिलेक्टर्स का उपयोग करके अपने स्टाइलशीट्स के अंदर कस्टम data attributes को टार्गेट कर सकते हैं, और यहाँ तक कि CSS content प्रॉपर्टी का उपयोग करके उनकी वैल्यूज़ को टेक्स्ट के रूप में स्क्रीन पर भी दिखा सकते हैं।

Note: कस्टम प्रॉपर्टीज़ के आधार पर कंडीशनल स्टाइलिंग लागू करने के लिए अपने स्टाइलशीट्स में data attributes का उपयोग करें।
Warning: data attributes के अंदर ज़रूरी कंटेंट न रखें; अपनी साइट को accessible बनाए रखने के लिए इसके बजाय स्टैंडर्ड टेक्स्ट टैग्स इस्तेमाल करें।

उदाहरण: Reading Data Attributes with CSS

markup
<style>
  [data-status="active"] {
    border: 2px solid green;
  }
</style>
<div data-status="active">Active widget</div>

JavaScript में dataset से डेटा पढ़ना

JavaScript dataset प्रॉपर्टी का उपयोग करके कस्टम data attributes को आसानी से पढ़ और मॉडिफाई कर सकता है। ब्राउज़र अपने-आप आपके हाइफनेटेड data- एट्रिब्यूट्स को camelCase ऑब्जेक्ट प्रॉपर्टीज़ में बदल देता है।

Note: JavaScript में अपने data attributes को camelCase नामों का उपयोग करके एक्सेस करें (जैसे, data-tool-type, dataset.toolType बन जाता है)।
Warning: सभी data attribute वैल्यूज़ JavaScript द्वारा plain strings के रूप में पढ़ी जाती हैं; ज़रूरत पड़ने पर इन्हें मैन्युअली नंबर्स में बदलें।

उदाहरण: Reading Data with dataset in JavaScript

markup
<div id="widget" data-tool-type="calculator"></div>
<script>
  console.log(document.getElementById('widget').dataset.toolType);
</script>

Dynamic State Toggles

आप data attributes का उपयोग अपने पेज पर इंटरैक्टिव स्टेट्स मैनेज करने के लिए कर सकते हैं, जैसे active/inactive सेटिंग्स या dark/light मोड्स के बीच टॉगल करना, सिंपल स्क्रिप्ट्स और स्टाइल नियमों का उपयोग करके।

Note: अपने लेआउट टॉगल्स और स्टाइल बदलावों को डायनामिक रूप से नियंत्रित करने के लिए data attributes का उपयोग करें।
Warning: सुनिश्चित करें कि आपके इंटरैक्टिव बटन उन कीबोर्ड यूज़र्स के लिए भी accessible हों जो माउस से नेविगेट नहीं कर सकते।

उदाहरण: Dynamic State Toggles

markup
<button data-state="inactive" onclick="this.dataset.state = 'active'">Toggle</button>

Accessibility और ARIA संबंधी चिंताएँ

जहाँ data attributes कस्टम स्टाइलिंग और स्क्रिप्टिंग के लिए बेहद उपयोगी हैं, वहीं उनका कोई सिमैंटिक अर्थ बिल्कुल नहीं होता।

स्क्रीन रीडर्स जैसे असिस्टिव डिवाइसेज़ आपके data attributes को पूरी तरह इग्नोर कर देंगे, इसलिए अपने इंटरैक्टिव एलिमेंट्स को एक्सेसिबल बनाए रखने के लिए आपको स्टैंडर्ड ARIA attributes का उपयोग करना होगा।

Note: स्क्रीन रीडर्स को स्टेट्स बताने के लिए स्टैंडर्ड ARIA attributes (जैसे aria-expanded) का, और कस्टम CSS स्टाइल्स के लिए data attributes का उपयोग करें।
Warning: data attributes को कभी भी स्टैंडर्ड ARIA roles और labels के विकल्प के रूप में इस्तेमाल न करें।

उदाहरण: Accessibility and ARIA Concerns

markup
<button data-expanded="false" aria-expanded="false">Show more</button>
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.