带有多个可标记后代的html5标签元素

时间:2014-07-16 06:39:08

标签: html5 label w3c-validation

所以我正在通过并验证我的网站,我注意到了9个错误,但是这个错误让我很难过。

Line 96, Column 27: label element with multiple labelable descendants.
                    <label><h1>Birthday</h1>

以下完整代码:

<label><h1>Birthday</h1>
                        <select name="day">
                            <option value="00" disabled selected>Day</option>
                            <?php
                            for($i=1;$i<=31; $i++)
                            {
                               $n = sprintf("%02s", $i);
                               echo '<option value="'.$n.'">'.$n.'</option>';
                            }
                            ?>
                        </select>
                        <select name="month">
                            <option value="00" disabled selected>Month</option>
                            <?php
                            for($i=1;$i<=12; $i++)
                            {
                               $n = sprintf("%02s", $i);
                               echo '<option value="'.$n.'">'.date("F",strtotime('01.'.$n.'.2001')).'</option>';
                            }
                            ?>
                        </select>
                        <select name="year">
                            <option value="00" disabled selected>Year</option>
                            <?php
                                $year = date("Y");
                            for($i=$year-99;$i<=$year; $i++)
                            {

                               echo '<option value="'.$i.'">'.$i.'</option>';
                            }
                            ?>
                        </select>
                    </label>

我知道它的任何建议必须与标签后面的h1或沿线的东西有关,因为标签中没有标签

1 个答案:

答案 0 :(得分:1)

select中有多个label个元素,而且这些元素都是“可标记的”。

请参阅:http://www.w3.org/TR/html5/forms.html#the-label-element

规范实际上说“如果[...]标签元素有一个可谓的元素后代,那么树顺序中的第一个这样的后代是标签元素的标记控件。”所以在你的例子中,浏览器应该将标签视为第一个选择元素的标签。