Подтвердить что ты не робот

Хорошо ли положить внутри пустой <td>?

Если это структура:

<table cellspacing="0" cellpadding="0">
   <tr>
      <td>I don't need anything here, should I always put a &nbsp; here?</td>
      <td>item </td>
   </tr>
   <tr>
      <td>model</td>
      <td>one</td>
   </tr>
   <tr>
      <td>model</td>
      <td>two</td>
   </tr>
   <tr>
      <td>model</td>
      <td>three</td>
   </tr>
</table>

Как читатель экрана прочитает пробел td? Это семантически правильно?

4b9b3361

Ответ 1

Семантически правильное ИМХО должно было бы оставить пустую ячейку действительно пустой. Однако я также заполняю пустые ячейки &nbsp; по прагматическим причинам.

Что касается экранных читателей, я должен сделать обоснованное предположение: пустые узлы, скорее всего, не будут прочитаны, потому что HTML состоит в основном из узловых текстовых узлов, которые читатели игнорируют, и я полагаю, что &nbsp; свернут на простое пространство в приложениях читателей (поскольку неразрывность является свойством визуальных медиа).

Для визуализации можно было бы использовать свойство таблицы CSS empty-cells:

table {
    empty-cells: show;
}

Ответ 2

Семантически, таблица HTML - это всего лишь массив (матрица) данных, и нет причин, по которым символ пробела без пробелов нельзя рассматривать как данные. Неважно, действительно ли это имеет смысл, зависит от цели, структуры и содержания таблицы. В большинстве случаев есть лучшее решение. См. Некоторые предложения в Пустые ячейки в таблицах HTML.

С технической стороны пространство без разрыва имеет ширину и высоту, в зависимости от шрифта, и это накладывает минимальные требования к размерам ячейки. Это может иметь значение, хотя в основном в тех случаях, когда строка или столбец используются как разделитель, например. для создания горизонтальной или вертикальной линии.

Другое влияние использования пространства без разрыва, противоположное использованию нормального пространства или оставление ячейки полностью пустым, заключается в том, что оно может повлиять на внешний вид границ ячейки и цвета фона и фонового изображения внутри ячейки.

Считыватели экрана отличаются тем, что они указывают на пустые ячейки, если это вообще возможно, и это также может зависеть от режима чтения. В любом случае пользователь не получает никаких указаний о том, что происходит на самом деле, то есть что означает пустая ячейка (если пустота передана пользователю вообще). При визуальном просмотре значение может (или не обязательно) быть довольно очевидным.

Ответ 3

Благодаря редакторам, таким как Dreamweaver, эта практика стала стандартом, поэтому даже если это не идеальное решение - по крайней мере, вы не будете одиноки в этом. Кроме того, он более совместим со старым браузером, чем CSS empty-cells.

Ответ 4

нет ничего, говорящего, что вы не должны использовать пробел TD, и он проходит, когда вы пытаетесь проверить.

Хотя более элегантный подход состоял бы в использовании colspan.

то есть.

<tr>
   <td colspan="2">item </td>
</tr>

Но это приведет к выравниванию вашего содержимого влево, и вам придется вручную (через css) применять стили, чтобы содержимое выравнивалось там, где вы хотите.

Хорошая вещь об использовании его с colspans заключается в том, что читатели экрана будут читать только то, что есть, а не пустые пространства