هل يمكن أن يشير الملصق فقط إلى عناصر الإدخال؟
سؤال
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
يتم النقر فوق، فايرفوكس لا. ايهم صحيح؟
نصائح أخرى
يقول مواصفات HTML، حول label
"سمة" "لسمة"، عند الحاضر، يجب أن تكون قيمة هذه السمة هي نفس قيمة سمة المعرف لبعض السيطرة الأخرى في نفس المستند. عندما تكون غائبة، يرتبط التسمية المعرفة بمحتويات العنصر. "
لذلك يجب أن يكون مراجع الهوية في "ل" التحكم في عنصر تحكم. ما هو السيطرة؟ المواصفات يقول أساسا أي input
هو عنصر تحكم، كما هو button
, select
, ، أو object
. وبعد لذلك فايرفوكس صحيح من الناحية الفنية - div
ليس رقابة.
أود أن أقول أنه لم يكن استخداما مناسبا للعلامة، لأن دلالات التسمية هي أنهم على وجه التحديد للضوابط.
يتم استخدام عنصر التسمية لتحديد الملصقات لعناصر التحكم التي لا تحتوي على ملصقات ضمنية،
أحدث المواصفات 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
يجب أن يكون العنصر هو معرف عنصر تحكم نموذج غير مخفي.