Каковы практические недостатки использования действительных презентационных элементов W3C, которые не указаны как устаревшие?

Каковы практические недостатки использования действительных презентационных элементов W3C, которые не указаны как устаревшие

  • для разработчиков XHTML-CSS,
  • Видящие Конечные пользователи сайта,
  • а для пользователей программы чтения с экрана?

например <b>, <i>, <br>, <hr>, <small> Если я использую эти теги в презентационных целях. (примечание: они также поддерживаются в HTML 5)

например:

  1. Если я использую <b> вместо <span style="font-weight: bold">
  2. Если я использую <i> вместо <span style="font-style: italic">
  3. Если я использую <br>, чтобы сделать разрыв строки в параграфе, чтобы не оставлять пробела
  4. Если я использую <hr> вместо <div style="border-bottom: 1px solid #666">
  5. Если я использую <small> вместо <span style="font-size: 9px">

Я знаю разницу между <strong> и <b>. Мой вопрос не о <strong> против <b>


person Jitendra Vyas    schedule 10.02.2010    source источник


Ответы (5)


В их использовании как таковых нет никаких «против». Есть "против" их использования не по назначению. В прошлом они часто использовались для неправильных целей на веб-страницах, но это не значит, что нет правильных вещей.

<i> семантически эквивалентен <span style="font-style: italic">: то есть семантического содержания нет. Слово внутри <i>...</i> не важнее; преобразователь текста в речь веб-страницы не должен (*) читать это слово подчеркнутым тоном.

Если вы хотите выделить слово, например «определенно» в этом предложении, вам следует определенно использовать <em>. Это обычный случай. Но если вам просто нужны типографские детали, такие как выделение курсивом блока текста только для визуальных целей, или типографские причуды, например, когда ваш сайт всегда ссылается на «Вещи Мир!», <em> не подходит и вам нужна версия без семантики (<i> или <span>).

Точно так же <strong> подходит для вышеприведенного «не того», поскольку это должно быть сильно подчеркнуто. Если вы просто хотите, чтобы часть текста была выделена жирным шрифтом, не подразумевая, что она важнее, чем окружающий текст, вы должны использовать <b> или, опять же, стили для другого элемента, например <span> или <div>.

Обычно <i> и <b> используются, когда вы берете текст из несемантического источника. В частности, обычно импортируется контент из текстового редактора или аналогичного приложения, где отсутствует концепция выделения как таковая, только «курсив» и «полужирный шрифт». В этом случае подходят <i> и <b> (или эквиваленты диапазона), потому что вы не знаете, какова семантическая цель этих текстовых стилей; эта информация уже потеряна.

Если вы автоматически преобразовали весь курсив в <em>, как это делают многие другие инструменты, вы можете выделить курсивом, который не предназначен для выделения акцента. Например, ссылки на другие работы, которые лучше размечать <cite>, или слова / фразы из другого языка, такого как латынь или французский, которые лучше размечать <span lang> (и соответствующий стиль, чтобы сказать это, слова из другого языка должны быть курсивом).

<small> и <big> теоретически могут быть одним и тем же регистром, но, хотя импортированный текст, выделенный полужирным шрифтом / курсивом, является обычным, текст импортированного размера - нет. Следовательно, никто не использует эти теги, и вам, как правило, лучше использовать обычные стили размера шрифта CSS.

<br> и <hr>, возможно, не так презентабельны, как указанные выше теги. Разрыв строки может быть важной частью содержимого (например, при разделении строк в адресе), а горизонтальная линейка представляет собой более сильное разделение между частями текста, чем простой абзац. Конечно, если вы используете <br> для создания фальшивых абзацев, вы делаете это неправильно (а вы Дэвид Сигел примерно в 1998 году), и используете <hr> только для того, чтобы получить красивую маленькую строчку, которая тоже неверна.

(*: иллюстративный пример; выяснение того, что на самом деле делают настоящие программы чтения с экрана, оставлено в качестве упражнения для читателя.)

person bobince    schedule 10.02.2010
comment
«<i> семантически эквивалентен <span style="font-style: italic">: то есть семантического содержания нет». - в HTML5 (на данный момент) это как бы имеет очень расплывчатое значение: dev.w3.org/html5/spec/Overview.html#the-i-element. Но это всего лишь HTML5. - person Paul D. Waite; 10.02.2010
comment
Интересный! Они попытались работать в обратном направлении, чтобы стандартизировать приведенный выше случай «несемантический полужирный / курсивный импорт», фактически говоря, что «элемент <i> представляет собой любой из ряда вещей, которые обычно отображаются курсивом». - person bobince; 10.02.2010
comment
Я бы хотел, чтобы был тег, который означал разрыв абзаца, для случаев, когда текст должен отображаться как несколько абзацев, но все они должны быть частью одного и того же узла. В противном случае, если есть, например, упорядоченный или неупорядоченный список и один из элементов должен быть расширен на несколько абзацев, необходимо либо добавить тег <p> в каждый элемент, использовать двойной <br> для создания фальшивого разрыва абзаца, либо иметь другую архитектуру для более длинного элемента списка, чем для остальных. Ничто из этого не кажется очень привлекательным. - person supercat; 11.09.2014

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

Однако, как правило, люди используют:

  • <strong> вместо <b>;
  • <em> вместо <i>;
  • <hr> и <br>, потому что альтернативы нет;
  • <small>, по моему опыту, используется редко, вместо этого используется стиль CSS.

Важно понимать, что <strong> и <em> имеют семантическое значение, а <b> и <i> - нет, поэтому существуют допустимые варианты использования для обоих.

person cletus    schedule 10.02.2010
comment
cletus, я думаю, он спрашивает о недостатках использования нерекомендуемых презентационных тегов. - person batbrat; 10.02.2010

hrs сложно стилизовать с помощью CSS без добавления дополнительных html

brs просто раздражают меня, поскольку они на самом деле не требуются, когда у вас есть отступы и поля, с которыми можно поиграть

Я предпочитаю использовать em или strong, а не i или b - оба из них подразумевают курсив или полужирный, тогда как em или strong немного более абстрактны, поэтому, если вы хотите придать некоторую 'em'phasis некоторому тексту или придать тексту немного вид сильнее они имеют больше смысла, не обязательно выделенные жирным шрифтом или курсивом

person matpol    schedule 10.02.2010

Минусы использования элементов <br> для обозначения разрывов строк (и, следовательно, отказа от использования элементов <p> для обозначения абзацев) заключаются в том, что вы ограничиваете область контроля CSS над документом. Намного легче управлять множеством <p> элементов текста, чем текстом с вкраплениями <br> в одном элементе через CSS.

Всякий раз, когда я собираю HTML-документ, я использую

  • <br> для обозначения «мягкого» перерыва. (Как и выше: лучше используйте поля на <p> элементах для отображения абзацев.)
  • <hr> для обозначения разделения документа на два раздела, например между заголовком и навигацией или навигацией и содержимым. Когда браузер без поддержки CSS просматривает документ, становится видно четкое разделение. Затем я скрываю <hr>s с помощью CSS.
person ndorfin    schedule 10.02.2010

Из ваших 5 примеров только этот, я думаю, имеет значение: "# Если я использую <small> вместо <span style="font-size:9px>"

Small является относительным, а font-size:9px - абсолютным. Мы всегда должны использовать относительные единицы, позволяя браузеру выбирать собственный абсолютный масштаб. <span style="font-size:small"> (или предпочтительно <span style="font-size:smaller">) будет эквивалентом.

person graphicdivine    schedule 10.02.2010