क्या यह अवैध एक्सएचटीएमएल के लिए स्वीकार्य है?

मैंने कई साइटों को देखा है, एसओ शामिल हैं, एक्सएचटीएमएल का उपयोग अपनी मार्क-अप भाषा के रूप में करें और फिर spec का पालन करने में विफल रहे। एसओ के लिए सिर्फ स्रोत ब्राउज़ करना पैराग्राफ, अमान्य तत्व इत्यादि के लिए बंद टैग गुम हैं।

तो क्या टूल (और डेवलपर्स) एक्सएचटीएमएल डक्ट टाइप का उपयोग कर सकते हैं यदि वे अवैध मार्क अप करने जा रहे हैं? और क्या ब्राउज़र को खराब मार्क-अप की स्वीकृति में अधिक दृढ़ होना चाहिए?

और इससे पहले कि कोई भी पाखंड को चिल्लाए, मेरे ब्लॉग में कैप्था से जुड़ी अमान्य मार्क-अप का एक टुकड़ा है (या मैंने पिछली बार चेक किया था) जिसमें नोस्क्रिप्ट टैग स्टाइल करना शामिल है।

0
जोड़ा संपादित
विचारों: 1
क्या IE के लिए वेब मानकों को अनदेखा करना स्वीकार्य है?
जोड़ा लेखक GateKiller, स्रोत

13 उत्तर

मैं कहता हूं, अगर यह ठीक है, तो इससे कोई फर्क नहीं पड़ता कि यह पिक्सेल सही है या नहीं।

साइट को पाने और जिस तरीके से आप इसे चाहते हैं उसे चलाने में कुछ समय लगता है, वापस जाकर परिवर्तन करने के तरीके में पेज थोड़ा सा तरीका बदलता जा रहा है, तो आपको उन समस्याओं को ठीक करना होगा।

अब, मैं यह नहीं कह रहा हूं कि आपको मैला वेब पेज बनाना चाहिए, लेकिन मुझे तोड़ने के लिए कोई कारण नहीं दिखता है। ब्राउज़र निकट भविष्य में किसी भी समय त्रुटि सुधार के लिए समर्थन छोड़ने नहीं जा रहे हैं।

0
जोड़ा

निर्भर करता है। मेरे पास वह मेरे ब्लॉग के साथ समस्या थी जहां एक यूट्यूब वीडियो ने अवैध एक्सएचटीएमएल का कारण बना दिया, लेकिन यह ठीक हो गया। दूसरी ओर, मेरे पास "मान्य एक्सएचटीएमएल" लिंक है, और "मान्य एक्सएचटीएमएल" दावा और अवैध एक्सएचटीएमएल का संयोजन पेशेवर नहीं है।

चूंकि एसओ वैध होने का दावा नहीं करता है, मुझे लगता है कि यह स्वीकार्य है, लेकिन व्यक्तिगत रूप से अगर मैं जेफ था तो मुझे परेशान किया जाएगा और अगर इसे आधुनिक ब्राउज़र में अच्छा लगे, तो इसे ठीक करने का प्रयास करें, लेकिन कुछ लोग बल्कि आगे बढ़ते हैं और वास्तव में चीजें करते हैं गैर मौजूद बग को ठीक करने के बजाय।

0
जोड़ा

मुझे समझ में नहीं आ रहा है कि क्यों हर कोई अपनी वेबसाइटों को मानक फिट करने की कोशिश कर रहा है जब कुछ ब्राउज़रों के पास मानक कोड को सही ढंग से प्रस्तुत करने में समस्याएं होती हैं। मैं 10 साल की तरह कुछ के लिए वेब डिज़ाइन में रहा हूं और मैंने डबल कोडिंग (पढ़ा: हैकिंग सीएसएस) बंद कर दिया है, और बेवकूफ सामान बदल रहा है इसलिए मैं अपनी साइट पर एक बटन डाल सकता हूं।

I believe that using a < div> will cause you to be invalid regardless, and it get a bit harder to do any major JavaScript/AJAX without it.

0
जोड़ा
क्या? <div> पूरी तरह से एक्सएचटीएमएल मूल्य है।
जोड़ा लेखक Kirk Strauser, स्रोत

इतने सारे मानदंड हैं और वे इतनी बुरी तरह से लागू होते हैं या समर्थित हैं कि मुझे नहीं लगता कि यह महत्वपूर्ण है। मुझे गलत मत समझो, मुझे लगता है कि मानकों को होना चाहिए, लेकिन क्योंकि उन्हें लागू नहीं किया जाता है, कोई भी उनका पीछा नहीं करता है और यह एक विशाल नीचे की सर्पिल है।

0
जोड़ा

जब तक यह आईई, एफएफ, सफारी में काम करता है, (यहां अन्य ब्राउज़र डालें) आपको ठीक होना चाहिए। सत्यापन कई ब्राउज़र में सही ढंग से प्रस्तुत करने के रूप में महत्वपूर्ण नहीं है। सिर्फ इसलिए कि यह मान्य है, इसका मतलब यह नहीं है कि यह आईई में ठीक से काम करेगा, उदाहरण के लिए।

Google Analytics या अपनी साइट पर समान चलाएं और देखें कि आपके उपयोगकर्ता किस प्रकार के ब्राउज़र का उपयोग कर रहे हैं और फिर निर्णय लें कि आपको कौन से ब्राउज़र सबसे अधिक समर्थन करने की आवश्यकता है और कम महत्वपूर्ण लोगों के बारे में चिंता करें जब आपके पास ऐसा करने का अतिरिक्त समय हो।

0
जोड़ा
लेकिन यदि ब्राउज़र सही तरीके से इसका समर्थन नहीं करता है तो "वैध" क्या अच्छा है? मैं पूरे दिन "वैध" एक्सएचटीएमएल लिख सकता हूं, लेकिन इसका मतलब यह नहीं है कि यह एक ही क्रॉस-ब्राउज़र प्रस्तुत करने जा रहा है।
जोड़ा लेखक Bryan Denny, स्रोत
यदि यह मान्य नहीं है, तो "सही ढंग से प्रतिपादन" एक अनिर्धारित मान है क्योंकि यह निर्धारित करना असंभव है कि वास्तव में "सही" का अर्थ क्या है।
जोड़ा लेखक Kirk Strauser, स्रोत

वहां 99.9 99% साइट्स के लिए, इससे कोई फर्क नहीं पड़ता। एकमात्र बार जब मैंने कोई फर्क नहीं पड़ता, तो मैंने एचटीएमएलटीडी के माध्यम से एचटीएमएल इनपुट को एक्सएचटीएमएल-आईज़ में चलाया, और उसके बाद मेरा प्रसंस्करण चलाया।

बहुत अधिक, यह पुराना प्रोग्रामर का सिद्धांत है: कोई इनपुट भरोसा नहीं है।

0
जोड़ा

वैध मार्कअप का उपयोग करने के लिए कई कारण हैं। मेरा पसंदीदा यह है कि यह आपको कुछ महत्वपूर्ण द्रव्यमान तक पहुंचने के बाद वास्तविक प्रतिपादन समस्याओं से अग्रणी "डेल्टा रोट" के समतुल्य मार्कअप को रोकने के लिए रिग्रेशन परीक्षण के रूप में सत्यापन का उपयोग करने की अनुमति देता है। और वास्तव में, यह सिर्फ सादा मैला है जो "आलसी" त्रुटियों को टाइप करने और गलत-घोंसले / अनजान टैग को जमा करने की अनुमति देता है। वैध मार्कअप भावुक प्रोग्रामर की पहचान करने का एक तरीका है।

There's also the issue of debugging: valid markup also gives you a stable baseline from which to work on the inevitable cross-browser compatibility woes. No web developer who values his time should begin debugging browser compatibility problems without first ensuring that the markup is at least syntactically valid—and any other invalid markup should have a good reason for being there.

(संयोग से, stackoverflow.com इन दोनों परीक्षणों में विफल रहता है, और समस्याओं को ठीक करने के सुझाव </ए> अस्वीकार ।)

उन सभी ने कहा, अपने विशिष्ट प्रश्न का उत्तर देने के लिए, संभवतः एक्सएचटीएमएल सिद्धांतों में से किसी एक का उपयोग करने के लिए उपयुक्त नहीं है जबतक कि आप वैध (या कम से कम अच्छी तरह से गठित) मार्कअप उत्पन्न करने की योजना बनाते हैं। एक्सएचटीएमएल के प्राथमिक फायदे इस तथ्य से व्युत्पन्न हैं कि एक्सएचटीएमएल एक्सएमएल है, जो इसे एक्सएमएल के साथ काम करने वाले टूल्स और टेक्नोलॉजीज द्वारा संसाधित और परिवर्तित करने की इजाजत देता है। यदि आप अपने एक्सएचटीएमएल अच्छी तरह से गठित एक्सएमएल बनाने की योजना नहीं बनाते हैं, तो उस डॉक्टरेट को चुनने में थोड़ा सा बिंदु है। नवीनतम एचटीएमएल 4 spec शायद आपको जो भी चाहिए, वह करेगा, और यह बहुत अधिक क्षमाशील है।

0
जोड़ा
इसके अलावा, एचटीएमएल 4 (बिल्ली, यहां तक ​​कि एचटीएमएल 5) आपको कुछ तत्वों को छोड़ने और अभी भी वैध मार्कअप उत्पन्न करने की अनुमति देता है (जो कभी-कभी परिभाषा के अनुसार एक्सएचटीएमएल में असंभव है)। वैसे भी अमान्य मार्कअप का उपयोग करने की आवश्यकता है (संभवतः पुरातन ब्राउज़रों में फ्लैश या जावा एप्लेट्स को शामिल करने के लिए)। एचटीएमएल पीढ़ी के बाद अक्सर यह ढीलापन या सफाई की कमी है।
जोड़ा लेखक Alan Plum, स्रोत

नहीं, यदि आप अच्छी तरह से गठबंधन की गारंटी नहीं दे सकते हैं, तो आपको एक्सएचटीएमएल का उपयोग नहीं करना चाहिए, और व्यवहार में आप गारंटी नहीं दे सकते हैं अगर आप मार्कअप उत्पन्न करने के लिए एक्सएमएल सीरिएलाइज़र का उपयोग नहीं करते हैं। xml बनाने के बारे में पढ़ें।

अच्छी तरह से गठित चीज है जो HTML से एक्सएचटीएमएल को अलग करती है। "केवल एक" मार्कअप त्रुटि के साथ एक्सएचटीएमएल एक्सएचटीएमएल समाप्त हो जाता है। इसे हर बार सही होना चाहिए

यदि "एक्सएचटीएमएल" साइट कुछ त्रुटियों के साथ काम करने लगती है, तो ऐसा इसलिए है क्योंकि ब्राउज़र DOCTYPE को अनदेखा करते हैं और HTML को HTML के रूप में समझते हैं।

See XHTML proxy that forces interpretation of pages as XHTML. Most of the time they fail miserably. This is one of the reason why future of XHTML is uncertain and why development of HTML has been resumed.

0
जोड़ा

हालांकि मैं वैध एक्सएचटीएमएल और सीएसएस के लिए प्रयास करने में विश्वास करता हूं, फिर भी कई कारणों से करना मुश्किल होता है।

  • सबसे पहले, कुछ सामग्री AJAX के माध्यम से लोड की जा सकती है। कभी-कभी, मौजूदा डोम में टुकड़े सही ढंग से डाले नहीं जाते हैं।
  • जो HTML आप देख रहे हैं वह सभी एक ही दस्तावेज़ में नहीं उत्पादित हो सकते हैं। उदाहरण के लिए, पृष्ठ ऊपर घटकों, या टेम्पलेट्स से बना सकता है, और उसके बाद ब्राउजर इसे प्रस्तुत करने से ठीक पहले एक साथ फेंक दिया जा सकता है। यह एक बहाना नहीं है, लेकिन आप यह नहीं मान सकते कि जिस HTML को आप देख रहे हैं वह सभी को एक साथ कोड किया गया था।
  • क्या होगा अगर मार्कडाउन द्वारा उत्पन्न कुछ कोड अमान्य है? आप मान्य कोड का उत्पादन न करने के लिए स्टैक ओवरफ़्लो को दोष नहीं दे सकते।
  • आखिरकार, DOCTYPE का उद्देश्य केवल यह नहीं कहना है कि "अरे, मैं वैध कोड का उपयोग कर रहा हूं" लेकिन ब्राउज़र को ऐसा करने का भी प्रयास करना है जो आप करने की कोशिश कर रहे हैं ताकि कम से कम आ सकें उस जानकारी को सही ढंग से पार्स करने के लिए।

मुझे नहीं लगता कि अधिकांश डेवलपर्स एक डॉक्टरेट निर्दिष्ट करते हैं और फिर स्पष्ट रूप से इसका पालन करने में विफल रहते हैं।

0
जोड़ा

मुझे नहीं लगता कि, यदि आप एक डॉक्टरेट निर्दिष्ट करते हैं, तो इस सिद्धांत का पालन न करने का कोई कारण नहीं है।

एक्सएचटीएमएल का उपयोग स्वचालित त्रुटि पहचान आसान बनाता है, प्रत्येक परिवर्तन स्वचालित रूप से अमान्य मार्कअप के लिए चेक किया जा सकता है। यह त्रुटियों को रोकता है, खासकर जब स्वचालित रूप से जेनरेट की गई सामग्री का उपयोग करते हैं। एक बंद टैग को बहुत कम या बहुत अधिक प्रतिलिपि बनाने / पेस्ट करने के लिए एक टेम्पलेटिंग इंजन (जेएसपी, एएसपी.नेट स्ट्रिंग टेम्पलेट, इत्यादि) का उपयोग करके वेब डेवलपर के लिए वास्तव में आसान है। जब यह आपकी एकमात्र त्रुटि है, तो इसका पता लगाया जा सकता है और तुरंत तय किया जा सकता है। मैंने एक बार ऐसी साइट के लिए काम किया जिसमें प्रति पृष्ठ 165 सत्यापन त्रुटियां थीं, जिनमें से 2 या 3 वास्तविक बग थे। इन्हें अन्य त्रुटियों के अव्यवस्था में खोजना मुश्किल था। स्वचालित सत्यापन से स्रोत पर इन त्रुटियों को रोका होगा।

कहने की जरूरत नहीं है, मानक चुनना और चिपके रहना कभी भी अन्य सिस्टम (स्क्रीन स्क्रैपर्स, स्क्रीन रीडर, सर्च इंजन) के साथ अंतःक्रियाशीलता का लाभ नहीं उठा सकता है और मैंने कभी ऐसी परिस्थिति में नहीं आया है जहां सीएसएस समाधान के साथ वैध अर्थात् एक्सएचटीएमएल सभी के लिए संभव नहीं था प्रमुख ब्राउज़रों।

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

व्यावहारिक होना अच्छा है और एक्सएचटीएमएल का पालन नहीं करना क्योंकि किसी ने लागत के बावजूद ऐसा कहा है, लेकिन सीएसएस और ब्राउज़रों, परीक्षण और सत्यापन उपकरण के बारे में वर्तमान ज्ञान के साथ, ज्यादातर समय लाभ लागत से अधिक होते हैं।

0
जोड़ा

मैं केवल दार्शनिक तनाव को बचाने के लिए एक्सएचटीएमएल का उपयोग नहीं करता। ऐसा नहीं है कि किसी भी ब्राउज़र को एक्सएचटीएमएल की तरह इसका इलाज कर रहा है।

यदि पृष्ठ को एप्लिकेशन / xhtml + xml के रूप में भेजा जाता है, तो ब्राउज़र खराब मार्क-अप को अस्वीकार कर देंगे, लेकिन वे शायद ही कभी हैं। यह ठीक है।

मैं स्टैक ओवरफ़्लो के साथ सीएसएस और जावास्क्रिप्ट के इनलाइन उपयोग जैसी चीज़ों के बारे में अधिक चिंतित हूं, क्योंकि वे रखरखाव को कठिन बनाते हैं।

0
जोड़ा

हमें हमेशा मानकों के अनुसार इसे वैध बनाने की कोशिश करनी चाहिए। हम सुनिश्चित करेंगे कि वेबसाइट वर्तमान ब्राउज़र और भविष्य के ब्राउज़र पर प्रदर्शित और काम करेगी।

0
जोड़ा

आप कह सकते हैं कि मेरे पास एक्सएचटीएमएल वैधता पर ओसीडी है। मुझे लगता है कि कोड के साथ अधिकांश समस्याएं वैध नहीं हैं प्रोग्रामर से आती हैं जो एचटीएमएल और एक्सएचटीएमएल के बीच अंतर नहीं जानती हैं। मैं अब 100% वैध एक्सएचटीएमएल और सीएसएस या कुछ समय लिख रहा हूं और कभी भी अन्य ब्राउज़रों के साथ कोई बड़ी प्रतिपादन समस्या नहीं हुई है। यदि आप सब कुछ वैध रखते हैं, और कुछ भी विदेशी सीएसएस के अनुसार कोशिश नहीं करते हैं, तो आप फिक्स में स्वयं को एक टन बचाएंगे।

0
जोड़ा