क्या यह HTML5 परिभाषाओं के तहत एक सामान्य div एलिमेंट की आईडी के रूप में "मान" के लिए "s" लेबल का उपयोग करने के लिए मान्य है (उदाहरण के लिए मैंने एक कस्टम ड्रॉपडाउन सूची कार्यान्वयन किया है जो div के अंदर संलग्न है)
यदि संभव हो तो कृपया मुझे बताएं,
थॉमस
उत्तर:
उत्तर № 1 के लिए 10युक्ति के अनुसार नहीं:
कुछ तत्व, उनमें से सभी फॉर्म-जुड़े हुए नहीं हैं, उन्हें वर्गीकृत किया गया है लेबल करने योग्य तत्व। ये ऐसे तत्व हैं जो एक के साथ जुड़े हो सकते हैं लेबल तत्व।
"बटन" "इनपुट" (यदि प्रकार छिपी हुई स्थिति में नहीं है) "कीजन" "मीटर" "आउटपुट" "प्रगति" "चुनें" "टेक्सारिया"
http://www.w3.org/TR/html5/forms.html#category-label
यह भी देखें:
विशेषता के लिए इंगित करने के लिए निर्दिष्ट किया जा सकता हैफार्म नियंत्रण के साथ जिसके शीर्षक को संबद्ध किया जाना है। यदि विशेषता निर्दिष्ट है, विशेषता का मान एक लेबल करने योग्य तत्व की आईडी होना चाहिए लेबल तत्व के समान दस्तावेज़। यदि विशेषता निर्दिष्ट है और दस्तावेज़ में एक तत्व है जिसकी आईडी मूल्य के बराबर है विशेषता के लिए, और पहला ऐसा तत्व एक लेबल करने योग्य तत्व है, तब वह तत्व लेबल तत्व का लेबल नियंत्रण है।
http://www.w3.org/TR/html5/the-label-element.html#attr-label-for
मुझे लगता है कि प्रश्न एक वैध उपयोग का मामला प्रस्तुत करता है। मुझे यकीन नहीं है कि इस तरह के परिदृश्य के लिए अनुशंसित पैटर्न क्या है, हालांकि ARIA विशेषताएँ मार्कअप को अधिक सुलभ बनाने में मदद कर सकती हैं:
https://developer.mozilla.org/en/Accessibility/ARIA/forms/Basic_form_hints https://developer.mozilla.org/Special:Tags?tag=ARIA
जवाब के लिए 2 № 2
जैसा कि टिम ने कहा कि इसे मूल रूप से करना संभव नहीं है, हालांकि थोड़ी सी जावास्क्रिप्ट के साथ आप इसे अनुकरण कर सकते हैं
jQuery(document).delegate("[for]","click",function(e){
var targetEl = jQuery("#"+jQuery(this).attr("for"));
if(targetEl.is("div.your-custom-dropdown-class")) { //if targetEl is one of your dropdowns
e.preventDefault();
targetEl.trigger("click"); //open the drop down
}
});