2008-09-19 11 views
19

मैं अभी एक साइट बना रहा हूं, अब तक मैंने दर्दनाक रूप से सब कुछ मजबूर होना जरूरी है और यह ब्राउज़रों में काफी समान दिखता है। हालांकि, मैं कुछ तीसरे पक्ष/मुफ्त जावास्क्रिप्ट को लागू करना शुरू कर रहा हूं जो चीजों को जोड़ने जैसे चीजें करते हैं (उदाहरण के लिए ऑर्डर = 2)। मैं इसके चारों ओर काम कर सकता हूं लेकिन यह दर्द है, और मैं यह सुनिश्चित करने के अपने प्रधानाचार्यों को खोना शुरू कर रहा हूं कि सब कुछ मान्य है। वास्तव में, इस तरह के आसपास काम करने के लिए कोई बात है? मुझे फ़ायरफ़ॉक्स के लिए HTMLValidator प्लगइन मिला है, और अधिकांश प्रमुख साइटों को देख रहा है (इसमें एक, google, आदि शामिल हैं), वे वैध एक्सएचटीएमएल या एचटीएमएल नहीं हैं।एक्सएचटीएमएल अनुपालन व्यर्थ है?

+0

'HTML संस्करण पसंद' प्रश्न भी देखें: http://stackoverflow.com/questions/3654/html-version-choice – Chris

+1

मैंने buzzword-compliance टैग को हटा दिया। बेहद आक्रामक, आईएमएचओ। आपके अंतिम अनुच्छेद –

उत्तर

1

मुझे अभी तक एक ऐसा उदाहरण अनुभव नहीं हुआ है जहां गैर-मानक विशेषता के अतिरिक्त किसी भी ब्राउज़र में एक प्रतिपादन मुद्दा पड़ा है।

उन गैर-मानक विशेषताओं के आसपास काम करने की कोशिश न करें। प्रमाणीकरण अनजाने गलतियों के लिए अपने कोड को दोबारा जांचने के लिए उपकरण के रूप में आसान हैं, लेकिन जैसा कि हम सभी जानते हैं, यहां तक ​​कि पूरी तरह से मान्य xhtml हमेशा ब्राउज़रों में लगातार प्रस्तुत नहीं करेगा। ऐसे कई बार होते हैं जब डिज़ाइन निर्णयों के लिए हमें प्रभाव प्राप्त करने के लिए ब्राउज़र विशिष्ट (और गैर-मानक) हैक्स का उपयोग करने की आवश्यकता होती है। यह एक वेब डेवलपर का जीवन है जैसा कि प्रौद्योगिकी ड्राइविंग साइटों (Google, याहू, इत्यादि) की संख्या से प्रमाणित है जो मान्य नहीं हैं।

2

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

व्यक्तिगत रूप से जब भी संभव हो मैं नवीनतम मानकों के साथ चिपक जाता हूं, लेकिन आपको निश्चित रूप से अनुपालन के खिलाफ समय/धन का वजन करना पड़ता है और यह अधिकांश के लिए व्यक्तिगत वरीयता के लिए आता है।

4

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

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

यह कहा गया, सुनिश्चित करें कि यह केवल आलसी होने का मामला नहीं है। जबकि वैधकर्ता लगातार तीसरे पक्ष की विशेषता के हर उदाहरण को लेकर परेशान हो सकते हैं, जो अन्य सत्यापन त्रुटियों को अस्वीकार नहीं करता है (वे)। यह अक्सर आपके काम को दोबारा जांचने के साधन के रूप में स्कैनिंग के लायक है।

1

एचटीएमएल मान्य होने के नाते आमतौर पर आप दोनों और ब्राउज़र प्रतिपादन इंजन के लिए एक सहायता है। ब्राउजर को कम क्विर्क से निपटने के लिए, जितना अधिक वे नई सुविधाओं को जोड़ने पर ध्यान केंद्रित कर सकते हैं। जितना अधिक सख्त आप हैं, उतना कम समय आप सोचेंगे कि यह एफ @ # कंकिंग मालिकाना टैग अन्य ब्राउज़रों में क्यों काम नहीं करता है।

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

3

यदि आप XML के रूप में एक्सएचटीएमएल का लाभ लेने की योजना बना रहे हैं, तो यह आपके पृष्ठों को वैध और अच्छी तरह से गठित करने के लिए योग्य है। अन्यथा, सादा पुराना अर्थपूर्ण HTML शायद आप चाहते हैं कि चाहते हैं। किसी भी तरह से, आपके दर्शकों की ज़रूरतें एक वैधकर्ता की ज़रूरतों से अधिक है।

4

मानक अनुपालन इस अवसर को बढ़ाने के बारे में है कि आपका पृष्ठ उन ब्राउज़रों में काम करेगा जो आप परीक्षण नहीं करते हैं। इसमें स्क्रीन पाठक, और आपके द्वारा परीक्षण किए जाने वाले ब्राउज़रों का अगला अपडेट, और ब्राउज़र जो आप परीक्षण करते हैं लेकिन जिन्हें उपयोगकर्ता द्वारा अप्रत्याशित तरीकों से कॉन्फ़िगर किया गया है।

मान्यता आपको कुछ भी गारंटी नहीं देती है, क्योंकि आपके पृष्ठ को सत्यापित करने के लिए यह संभव है लेकिन अभी भी पर्याप्त अस्पष्ट है कि यह किसी दिन कुछ ब्राउज़र पर जिस तरह से आप चाहते हैं उससे व्यवहार नहीं करेगा।

हालांकि, यदि आपका पृष्ठ मान्य करता है, तो आपके पास कम से कम एक्सएचटीएमएल स्पेक का बल है कि यह कैसे व्यवहार करना चाहिए। यदि यह मान्य नहीं है, तो आपके पास ब्राउज़र लेखकों के बीच अनौपचारिक सम्मेलनों का एक समूह है।

अमान्य एक्सएचटीएमएल की तुलना में वैध HTML 3 लिखना शायद बेहतर है, अगर ऐसा कुछ है जो आप करना चाहते हैं, लेकिन एक दूसरे में नहीं है।

+0

+1 आईई को छोड़कर सभी प्रमुख ब्राउज़रों में एक्सएचटीएमएल पार्सर्स हैं। एक्सएचटीएमएल डीटीडी का सम्मान किया जाता है (नामित इकाइयां काम करते समय काम करती हैं, कभी-कभी अनजाने में भी जब यह नहीं होती है :) एक्सएमएल शर्तों में अच्छी तरह से गठबंधन और सत्यापन अलग-अलग चीजें हैं। –

0

मैं सभी मामलों में दर्शकों की ज़रूरतों के साथ समय/लागत का वजन करने वाले अधिकांश समय अनुपालन कोड लिखने का प्रयास करता हूं। जहां आपको कोड 503 अनुपालन की आवश्यकता है, यह आपके सर्वोत्तम हित में है और आपके दर्शकों के हित में संगत कोड लिखने के लिए है। मैं स्क्रीन पाठकों के एक समूह में आया हूं जो कोड थोड़ा सा बंद होने पर उड़ाते हैं।

पोस्टरों के बहुमत की तरह, यह वास्तव में आपके दर्शकों की ज़रूरतों के बारे में है।

1

मुझे लगता है कि "वैध कोड" लिखना महत्वपूर्ण है, क्योंकि आप नियमों का पालन करके एक उदाहरण स्थापित कर रहे हैं। यदि प्रत्येक डेवलपर ने एफएक्स, सफारी और ओपेरा के लिए कोड लिखा था, तो मुझे लगता है कि आईई को संस्करण 8 के मुकाबले जल्द ही "नियमों का पालन करना" था।

0

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

कस्टम विशेषताओं का उपयोग करने का एक विकल्प 'rel' विशेषता का उपयोग करना है, उदाहरण के लिए Litebox (और इसके साथ) देखें।

2

जहां तक ​​ब्राउज़रों का संबंध है, एक्सएचटीएमएल अनुपालन कि में व्यर्थ है:

  1. ब्राउज़र एक्सएचटीएमएल पारसर्स जरूरत नहीं है। उनके पास गैर संस्करण-विशिष्ट, वेब-संगत HTML पार्सर्स हैं जो http://www.w3.org/1999/xhtml नामस्थान के आस-पास एक डोम बनाते हैं।

  2. कुछ ब्राउज़र जिनमें एक्सएमएल पार्सर्स हैं एक्सएचटीएमएल मार्कअप एक्सएमएल के रूप में एप्लिकेशन/एक्सएचटीएमएल + एक्सएमएल के रूप में कार्यरत हैं। यह एक्सएमएल लेगा और http://www.w3.org/1999/xhtml नेमस्पेस में तत्वों के लिए डिफ़ॉल्ट HTML शैली और व्यवहार देगा। लेकिन, जहां तक ​​पार्सिंग जाती है, उसके पास एक्सएचटीएमएल के साथ कुछ लेना देना नहीं है। एक्सएमएल पार्सिंग नियमों का पालन किया जाता है, कुछ एक्सएचटीएमएल डीटीडी के नियम नहीं।

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

मार्कअप अच्छी तरह से बनाया गया है या नहीं, यह देखने के लिए सिंटैक्स जांच (सत्यापन करके) के लिए एक्सएचटीएमएल अनुपालन अच्छा है। यह पार्सिंग पार्स से बचने में मदद करता है। बेशक, यह एचटीएमएल के साथ भी किया जा सकता है, इसलिए इस मामले में एक्सएचटीएमएल के बारे में कुछ खास नहीं है।किसी भी तरह से, आपको अभी भी ब्राउज़र में परीक्षण करना होगा और उम्मीद है कि ब्राउज़र विक्रेता अद्भुत HTML पार्सर्स बनाते हैं जो सभी प्रकार के बकवास स्वीकार कर सकते हैं।

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

+0

के लिए – Kornel

0

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

मैं Mike Davidson approach to standards-oriented development का बड़ा प्रशंसक हूं।

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

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

तो, अपने सिद्धांतों को न खोएं, लेकिन याद रखें कि यदि आप मानकों का पालन करते हैं तो आप भविष्य में मुद्दों के गहरे अंत में समाप्त होने की संभावना कम हैं। जिस सामग्री को आप प्रदान करने का प्रयास कर रहे हैं वह यह प्रदर्शित करने से कहीं अधिक महत्वपूर्ण है।

संबंधित मुद्दे