Почему валидатор W3C не принимает элемент в качестве дочернего элемента?

  • 20 августа 2023 г. 16:26
Ответы на вопрос 2
Исторически сложилось, что в HTML существуют определенные правила для структуры таблицы. Стандарт HTML требует, чтобы таблицы имели следующую структуру:

- Элемент `<table>` содержит один или несколько элементов `<tr>`.
- Элемент `<tr>` содержит один или несколько элементов `<th>` или `<td>`.
- Элемент `<th>` или `<td>` содержат текст или другие элементы.

Использование элемента `<tbody>` предполагается для группировки строк таблицы, но он не является обязательным. Когда элемент `<tbody>` не указывается явно, браузеры автоматически добавляют его в дерево разметки.

Тем не менее, валидатор W3C требует явного указания элемента `<tbody>` в качестве дочернего элемента элемента `<table>`. Это требование сформулировано в спецификации HTML, поэтому валидатор проверяет соответствие кода этим правилам.

В то же время, браузеры в большинстве случаев проигнорируют отсутствие элемента `<tbody>` и правильно интерпретируют таблицу. Поэтому по большей части это предупреждение можно игнорировать.

В вашем случае, чтобы избавиться от предупреждения валидатора W3C, вам нужно явно добавить элемент `<tbody>` внутри элемента `<table>`, даже если он не содержит никаких атрибутов или текста. Например, вы можете использовать следующую конструкцию:

```html
<table>
  <tbody>
    <!-- Ваше содержимое таблицы -->
  </tbody>
</table>
```

Таким образом, ваш код будет соответствовать требованиям валидатора W3C.
tbody и tfoot поменяйте местами. Название секций таблицы указывает на их последовательность.
Похожие вопросы