- प्रमुख ब्राउज़र
<h1> टैग की डिफ़ॉल्ट स्टाइल (UA style) बदलने वाला अपडेट जारी कर रहे हैं
- इसका खास असर
section, article, nav, aside आदि के भीतर नेस्टेड रूप में इस्तेमाल किए गए <h1> पर पड़ेगा
- डेवलपर्स को सावधान रहना होगा, क्योंकि इस बदलाव से साइट पर अप्रत्याशित स्टाइल परिवर्तन या Lighthouse warnings आ सकती हैं
क्या बदल रहा है
- HTML specification में कभी "outline algorithm" नाम का एक नियम था, जिसके अनुसार नेस्टेड sectioning elements की संख्या के आधार पर
<h1> को विज़ुअली <h2>, <h3> जैसा दिखाया जाता था
- उदाहरण के लिए
section > h1 को <h2> की तरह, और section > section > h1 को <h3> की तरह render किया जाता था
- यह असल accessibility tree में प्रतिबिंबित नहीं होता था, और अलग-अलग tools इसे अलग तरह से interpret करते थे, जिससे भ्रम पैदा होता था
- अंततः यह algorithm 2022 में HTML specification से हटा दिया गया, और अब ब्राउज़र भी इसके अनुसार UA styles हटा रहे हैं
पुराने ब्राउज़र UA style का उदाहरण
- x h1 { font-size: 1.50em }
- x x h1 { font-size: 1.17em }
- x x x h1 { font-size: 1.00em }
- x x x x h1 { font-size: 0.83em }
- x x x x x h1 { font-size: 0.67em }
HTML संरचना का उदाहरण
<body>
<h1>Level 1</h1>
<section>
<h1>Level 2</h1>
<section>
<h1>Level 3</h1>
<section>
<h1>Level 4</h1>
</section>
</section>
</section>
</body>
अपेक्षित बदलाव और समयसीमा
- अब
<h1> सिर्फ नेस्टेड section elements के अंदर होने से अपने आप अलग स्टाइल में नहीं बदलेगा
- UA style अब सभी
<h1> पर एक जैसी स्टाइल लागू करेगा
- अगर
<h1> पर font-size define नहीं है, तो Lighthouse में warning दिखाई देगी
- दिखाई जाने वाली warning:
H1UserAgentFontSizeInSection
Firefox
- 31 मार्च 2025 से Firefox Beta 138 में desktop users के 50% के लिए style change rollout शुरू
- Firefox Stable 138 में 5% users को rollout के बाद, version 140 तक पूरा rollout होने की योजना
- Firefox 136 या उसके बाद के versions में, अगर
font-size या margin define नहीं है तो console warning दिखाई देगी
- सेटिंग बदलने का तरीका:
about:config में layout.css.h1-in-section-ua-styles.enabled का मान false करें
Chrome
- Chrome 136 से, अगर
<h1> पुरानी डिफ़ॉल्ट छोटी style इस्तेमाल करता है, तो warning आएगी
- इसका असर Lighthouse के "Best Practices" score पर पड़ सकता है
Safari
- अभी कोई ठोस अपडेट या bug tracking नहीं है, लेकिन WebKit में भी ऐसा ही अपडेट आने की उम्मीद है
Lighthouse warning को कैसे ठीक करें
- Lighthouse, Chromium DevTools warnings के आधार पर,
<h1> पर font-size न होने पर warning दिखाता है
- इससे बचने के लिए
<h1> पर explicitly style देनी चाहिए
उदाहरण style
h1 {
margin-block: 0.67em;
font-size: 2em;
}
- specificity (प्राथमिकता) से बचने के लिए
:where() का उपयोग करें
:where(h1) {
margin-block: 0.67em;
font-size: 2em;
}
संक्षिप्त चेकलिस्ट
- ब्राउज़र की डिफ़ॉल्ट style पर निर्भर न रहें
<h2>, <h3> आदि का उचित उपयोग करके hierarchy को स्पष्ट रूप से व्यक्त करें
- सभी
<h1> पर font-size और margin स्पष्ट रूप से define करें
- CSS reset को अपडेट करें ताकि यह बदलाव शामिल हो सके
- Lighthouse और DevTools के जरिए warnings की जांच करें
- MDN के संबंधित दस्तावेज़ देखकर नवीनतम जानकारी अपनाएँ
संबंधित सामग्री
1 टिप्पणियां
Hacker News टिप्पणियाँ
Firefox 138 के stable version में इसे 5% users के लिए rollout किया जा रहा है, और इसे 50% तक बढ़ाने की योजना है
W3C द्वारा अपनाए गए outline algorithm की ऐतिहासिक पृष्ठभूमि दिलचस्प है
कुछ लोगों को जिज्ञासा है कि H1 behavior कब से specification का हिस्सा था
कुछ लोगों का कहना है कि उन्होंने section elements (
<section>,<aside>,<nav>,<article>) और<h1>tag के behavior के बारे में कभी गहराई से नहीं सोचायह अफसोस जताया गया है कि outline algorithm सफल नहीं हो पाया
<h1>fragments लिखे जा सकें और उन्हें document के global context के बजाय "मेरे context का सबसे ऊपरी शीर्षक" जैसा अर्थ दिया जा सकेएक राय है कि
<h1>tag, उसकी position चाहे जो भी हो, हमेशा<h1>ही होना चाहिएयह भी कहा गया है that इस जटिलता की वजह से कई designers हर चीज़ के लिए
<div>का इस्तेमाल करते हैंroleattribute का उपयोग करने से accessibility भी सुनिश्चित की जा सकती हैकुछ लोगों को लगता है कि HTML के headers कुछ हद तक मूर्खतापूर्ण हैं
<section>tag से अलग करना बेहतर अभिव्यक्ति होती