এইচটিএমএল <লেবেল> ট্যাগটিতে "ফর" বৈশিষ্ট্যটি কী করে?


382

আমি ভাবছি যে নিম্নলিখিত দুটি কোড স্নিপেটের মধ্যে পার্থক্য কি:

<label>Input here : </label>
<input type='text' name='theinput' id='theinput'/>

এবং

<label for='theinput'>Input here : </label>
<input type='text' name='theinput' id='theinput'/>

আমি নিশ্চিত যখন আপনি একটি বিশেষ জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করেন এটি কিছু করে, তবে এটি ছাড়াও এটি কি এইচটিএমএলকে বৈধতা দেয় বা অন্য কোনও কারণে প্রয়োজনীয় হয়?

উত্তর:


577

<label>ট্যাগ আপনি লেবেলের উপর ক্লিক করুন করার অনুমতি দেয়, এবং এটি সংশ্লিষ্ট ইনপুট উপাদান এ ক্লিক মত গণ্য করা হবে। এই সমিতি তৈরির দুটি উপায় রয়েছে:

একটি উপায় হ'ল ইনপুট উপাদানটির চারপাশে লেবেল উপাদানটি মোড়ানো:

<label>Input here:
    <input type='text' name='theinput' id='theinput'>
</label>

অন্য forউপায়টি এটি সম্পর্কিত ইনপুটটির আইডি দিয়ে বৈশিষ্ট্যটি ব্যবহার করা হয় :

<label for="theinput">Input here:</label>
<input type='text' name='whatever' id='theinput'>

এটি বিশেষত চেকবক্স এবং বোতামগুলির সাথে ব্যবহারের জন্য দরকারী, কারণ এর অর্থ আপনি বাক্সটি আঘাত না করে সম্পর্কিত পাঠ্যে ক্লিক করে বাক্সটি চেক করতে পারেন।

MDN এ এই উপাদানটি সম্পর্কে আরও পড়ুন ।


106
নোট করুন যে অ্যাট্রিবিউটটির জন্য আইডি অ্যাট্রিবিউট দ্বারা ইনপুটকে আবদ্ধ করা হবে, এবং নাম অ্যাট্রিবিউটটি মিলাতে হবে না। <জন্য লেবেল = "theinput"> এখানে ইনপুট: </ ট্যাগ> <ইনপুট টাইপ = 'টেক্সট' নাম = 'notmatching হল' id = 'theinput'> উইল এখনও কাজে
Glo

4
লেবেলে ক্লিক করা সর্বদা সম্পর্কিত উপাদানটিতে ক্লিক করার মতো আচরণ করা হয় না। উদাহরণস্বরূপ, ক্রোম এবং সাফারিতে selectকেবলমাত্র একটি লেবেল ক্লিক করা কেবলমাত্র বিকল্পগুলির প্রসারণের পরিবর্তে নির্বাচনের দিকে মনোনিবেশ করে।
এমিল পেলস

2
@ এমিলিপেলস যতক্ষণ না ব্রাউজারের ইভেন্টের মডেল সম্পর্কিত, তারা সমান। আপনি যা বর্ণনা করছেন তা ওএসের ড্রপ-ডাউন মেনুগুলির হ্যান্ডলিং দ্বারা সরবরাহ করা ইউআই সম্পর্কে আরও বেশি যা মাউসের সাথেই আবদ্ধ tied
বার্মার

3
এটি অ্যাক্সেসযোগ্যতা এবং স্ক্রিন পাঠকদের জন্য সক্রিয়ভাবে কেন ব্যবহার করা উচিত তা উল্লেখ করা গুরুত্বপূর্ণ মনে হয়।
coyotte508

1
আমি প্রতিটি ইনপুট ক্ষেত্রে "for" গুণাবলী সহ কোনও ফর্মের কোনও লেবেলে ক্লিক করলে প্রতিবার দুবার উত্থিত শরীরের ক্লিক দিয়ে আমি শেষ দুই ঘন্টা লড়াই করে যাচ্ছিলাম। আমি অবশেষে বুঝতে পারি কেন আমি লেবেলের ক্লিকে স্টপপ্রোগেশন ব্যবহার করি এমনকি কেন শরীরের ক্লিকটি এখনও বাড়ানো হয়েছিল ... কারণ আপনি বর্ণিত আচরণের পরে ইনপুট ক্ষেত্রটির দ্বারা উত্থিত ক্লিকের কারণ।
স্যামুয়েল

52

দ্য forঅ্যাট্রিবিউট হিসাবে বর্ণনায় সংজ্ঞায়িত একটি নিয়ন্ত্রণ উপাদান সঙ্গে ট্যাগ সহযোগীদের labelএইচটিএমএল 4.01 বৈশিষ্ট হবে। এটি অন্যান্য বিষয়গুলির সাথে বোঝায় যে labelউপাদানটি যখন ফোকাস পায় (উদাহরণস্বরূপ ক্লিক করার মাধ্যমে), তখন এটি সম্পর্কিত নিয়ন্ত্রণের উপর দৃষ্টি নিবদ্ধ করে passes লেবেল এবং একটি নিয়ন্ত্রণের মধ্যে সংযোগটি স্পিচ-ভিত্তিক ব্যবহারকারী এজেন্টরাও ব্যবহার করতে পারেন যা কোনও নিয়ন্ত্রণের সাথে ডিল করার সময় ব্যবহারকারীকে সম্পর্কিত লেবেলটি কী তা জিজ্ঞাসা করার উপায় দিতে পারে। (সমিতিটি ভিজ্যুয়াল রেন্ডারিংয়ের মতো সুস্পষ্ট নাও হতে পারে))

প্রশ্নের প্রথম উদাহরণে (ছাড়া for ), labelমার্কআপের ব্যবহারের কোনও যৌক্তিক বা কার্যকরী জড়িত নেই - এটি সিএসএস বা জাভাস্ক্রিপ্টে কিছু না করা হলে এটি অকেজো।

এইচটিএমএল স্পেসিফিকেশনগুলি নিয়ন্ত্রণগুলির সাথে লেবেলগুলিকে সংযুক্ত করা বাধ্যতামূলক করে না তবে ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি গাইডলাইনস (ডাব্লুসিএজি) ২.০ করে। এই প্রযুক্তিগত নথিতে বর্ণনা করা হয়েছে H44: ফর্মের নিয়ন্ত্রণ সঙ্গে সহযোগী টেক্সট লেবেল লেবেল উপাদানগুলি ব্যবহার করে , যা ব্যাখ্যা করেছেন যে অন্তর্নিহিত এসোসিয়েশন (পাখির যেমন দ্বারা inputভিতরে label) হিসেবে ব্যাপকভাবে মাধ্যমে স্পষ্ট অ্যাসোসিয়েশন প্রভৃতি সমর্থিত নয় forএবং idগুণাবলীর


10
শব্দার্থক সম্পর্ক এবং কার্যকরী ক্লিকের সম্পর্কের বাইরে এর অর্থ কী তা নিয়ে কথা বলার জন্য +1।
ulty4 Life

হাই, আমার একই আইডি সহ দুটি উপাদান রয়েছে তবে ভিন্ন ডিভে, আমি লেবেল ব্যবহার করে ফোকাস ইভেন্ট যুক্ত করেছি তবে দ্বিতীয় উপাদানটিতে এটি প্রথম উপাদানটির দিকে ফোকাস করছে। <html> <body> <div id = "first_div"> <লেবেল = "নাম"> নাম </ li>> <ইনপুট টাইপ = "পাঠ্য" আইডি = "নাম"> </ div> <ডিভিডি = "সেকেন্ড_ডিভ "> <লেবেল =" নাম "> নাম </ label> <ইনপুট টাইপ =" পাঠ্য "আইডি =" নাম "> </div> </body> </html>
লাভটোকোড 1'19

14

সংক্ষেপে এটি যা করে তা হ'ল ইনপুটটির উল্লেখ idthat's

<label for="the-id-of-the-input">Input here:</label>
<input type="text" name="the-name-of-input" id="the-id-of-the-input">

6
সংলগ্ন হলেও এর জন্য একটি যুক্ত করা গুরুত্বপূর্ণ। আমি শুনে শুনে মনে করি যে দৃষ্টিহীনদের জন্য কিছু স্ক্রিন পাঠকের অন্যথায় সমস্যা আছে। সুতরাং যদি আপনি সম্ভবত বিকল্প ব্রাউজার / স্ক্রিন রিডার ব্যবহার করছেন তাদের সাথে বন্ধুত্বপূর্ণ হতে চান তবে এই পদ্ধতিটি ব্যবহার করুন।
বিন 5

3

এর অ্যাট্রিবিউট জন্য <label>ট্যাগ তাদের একসঙ্গে বাঁধাই করার সংশ্লিষ্ট উপাদান আইডি অ্যাট্রিবিউট সমান হওয়া উচিত।


7
হ্যাঁ, তবে "তাদের একসাথে আবদ্ধ করুন" বলতে কী বোঝ? তারা ইতিমধ্যে এইচটিএমএল কাঠামোর প্রতিবেশী। এটি আমি বুঝতে পারি না।
জেফ

1
কোন উপাদানটি কোনও লেবেলের সাথে আবদ্ধ তা নির্দিষ্ট করে
রাহুল ত্রিপাঠি

2
@ সেনজিজফ্রস্টক্লাও jsfiddle.net/DmSGh --- "এখানে ইনপুট" পাঠ্য উভয়টিতে ক্লিক করার চেষ্টা করুন এবং দেখুন কী ঘটে।
জেজেজে

1
@ কেনজিজফ্রস্টক্লা: - "লেবু" ব্যবহার করে একটি লেবেল কোনও উপাদানকে আবদ্ধ করা যেতে পারে
রাহুল ত্রিপাঠি

1
উদাহরণস্বরূপ কয়েকটি দুর্দান্ত বৈশিষ্ট্য রয়েছে যখন আপনি রেডিও বোতামগুলি ব্যবহার করছেন। লেবেলে ক্লিক করা আসলে রেডিও বোতামটি টগল করবে। আপনি একটি কাস্টম ইউআই সহ রেডিও বোতাম ব্যবহার করার চেষ্টা করার সময় এটি একটি দুর্দান্ত বৈশিষ্ট্য।
অ্যালেক্স

0

বৈশিষ্ট্যের জন্য দেখায় যে এই লেবেলটি সম্পর্কিত ইনপুট ক্ষেত্র, বা চেক বাক্স বা রেডিও বোতাম বা এর সাথে যুক্ত অন্য কোনও ডেটা ফিল্ডে প্রবেশ করে। উদাহরণ স্বরূপ

    <li>
<label>{translate:blindcopy}</label>
            <a class="" href="#" title="{translate:savetemplate}" onclick="" ><i class="fa fa-list" class="button" ></i></a> &nbsp 
            <input type="text" id="BlindCopy" name="BlindCopy" class="splitblindcopy" />
    </li>

0

এটি forবৈশিষ্ট্যের পরামিতি যে কোনও ইনপুট লেবেল করে ।

<input id='myInput' type='radio'>
<label for='myInput'>My 1st Radio Label</label>
<br>
<input id='input2' type='radio'>
<label for='input2'>My 2nd Radio Label</label>
<br>
<input id='input3' type='radio'>
<label for='input3'>My 3rd Radio Label</label>

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.