هل يمكن أن يشير الملصق فقط إلى عناصر الإدخال؟

StackOverflow https://stackoverflow.com/questions/1094352

  •  11-09-2019
  •  | 
  •  

سؤال

W3Schools لديها هذا ليقول تسميات:

ال <label> علامة تعرف تسمية ل إدخال جزء. التركيز لي

هل هذا يعني أن HTML التالي غير صالح؟

<!doctype html>
<html>
    <head>
         <title>Example document</title>
    </head>
    <body>
        <label for="x">Label</label> 
        <hr>
        <div id="q" contentEditable="true">Hello</div>
        <hr>
        <div id="x" contentEditable="true">World</div>
    </body>
</html>

كل من الكروم و IE8 تعطي التركيز على World متي Label يتم النقر فوق، فايرفوكس لا. ايهم صحيح؟

هل كانت مفيدة؟

المحلول

بحسب ال W3C. ينطبق على ضوابط النموذج، وضوابط النموذج هي معرف ك:

  • أزرار
  • مربعات الاختيار
  • أزرار الراديو
  • القوائم
  • إدخال النص
  • حدد ملف
  • الضوابط الخفية
  • علامات الكائنات

حتى Firefox صحيح من الناحية الفنية، على الرغم من أنني بالكاد أعتبر أنه "كسر" إذا لم يقتصر المستعرض على هذه العناصر.

نصائح أخرى

يقول مواصفات HTML، حول label"سمة" "لسمة"، عند الحاضر، يجب أن تكون قيمة هذه السمة هي نفس قيمة سمة المعرف لبعض السيطرة الأخرى في نفس المستند. عندما تكون غائبة، يرتبط التسمية المعرفة بمحتويات العنصر. "

لذلك يجب أن يكون مراجع الهوية في "ل" التحكم في عنصر تحكم. ما هو السيطرة؟ المواصفات يقول أساسا أي input هو عنصر تحكم، كما هو button, select, ، أو object. وبعد لذلك فايرفوكس صحيح من الناحية الفنية - div ليس رقابة.

أود أن أقول أنه لم يكن استخداما مناسبا للعلامة، لأن دلالات التسمية هي أنهم على وجه التحديد للضوابط.

يتم استخدام عنصر التسمية لتحديد الملصقات لعناصر التحكم التي لا تحتوي على ملصقات ضمنية،

http://www.w3.org/tr/html401/interact/forms.html#-17.9.1.

أحدث المواصفات Whatwg هذا ليقول هذا:

يتم تصنيف بعض العناصر، وليس كلها مرتبطة بها، حسب العناصر الرسمية. هذه هي العناصر التي يمكن ربطها بعنصر التسمية.

  • button, input (إذا كان type السمة ليست في الحالة المخفية)، meter, output, progress, select, textarea

...

ال for قد يتم تحديد السمة للإشارة إلى عنصر تحكم نموذج التعليق المرتبط به. إذا تم تحديد السمة، يجب أن تكون قيمة السمة هي معرف عنصر الولادة في نفس الشجرة مثل label جزء.

(مصدر: https://html.spec.whatwg.org/multipage/forms.html..)

وبعبارة أخرى، فإن المعيار يسمح فقط for سمات الإشارة إلى عناصر واحدة من أنواع العلامات 7 المذكورة أعلاه. أزرار HTML المعروضة في السؤال (الذي يستخدم for عنصر للإشارة إلى قابلة للتحرير div) وبالتالي HTML غير صالح تقنيا تحت المواصفات الحالية.

ال nu html checker (الذي أقرته Whatwg.) يوافق؛ إذا طلبت التحقق من صحة مستند HTML من السؤال، فسيقول:

خطأ: قيمة for سمة label يجب أن يكون العنصر هو معرف عنصر تحكم نموذج غير مخفي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top