Почему <u>зло, а <strong>и <em>нет? - PullRequest
21 голосов
/ 08 февраля 2009

Ну, я знаю, что это не зло, просто не так красиво в семантике, как <strong> и <em> верно?

Однако, когда <b> становится более семантическим как <strong> и <i> как <em>, почему нет семантического близнеца для <u>?

В оформлении:

Итак, есть текстовое оформление в стиле CSS: подчеркивание для <u>, но нет ли уже одного веса шрифта: жирного шрифта для <strong>? Таким образом, идет <em> тоже.

В семантике:

<strong> семантически для чего? Сильно подчеркнутый текст? <em> семантически для чего? Подчеркнутый текст? Что-нибудь принципиально отличное друг от друга и взаимоисключающее? Нет. Почему не может быть другого способа подчеркнуть текст? Вы знаете, подобно тому, как <u> делает и создает семантическую близнец для него тоже - я думаю, это просто <strong> и <em> уже хорошо реализованы во всех основных браузерах, прежде чем <b> и <i> станут устаревшими .

Я знаю, теперь, когда это официально стало стандартом, вам просто нужно согласиться с этим. Или, пожалуйста, выскажите свое мнение: есть ли веская причина сделать <u> невидимым?

Ответы [ 11 ]

57 голосов
/ 08 февраля 2009

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

<strong> и <em> используются для придания значения размеченному тексту. Их стиль по умолчанию соответствует <b> и <i>, потому что именно так большинство людей демонстрируют силу и акцент в печати - но это можно изменить. Принимая во внимание, что использование CSS для изменения <b> может показаться нелогичным.

Таким образом, прямой ответ на ваш вопрос: <strong> и <em> придают значение тексту, тогда как <u> и другие придают тексту стиль , что сейчас сделано CSS. Стиль, применяемый другими, является второстепенным.

22 голосов
/ 08 февраля 2009

Принимается за гиперссылку.

12 голосов
/ 08 февраля 2009

font-weight:bold не эквивалентно strong. Тег strong имеет этот атрибут по умолчанию, но вы можете сделать его подчеркнутым, или красным, или чем угодно. В том-то и дело: здесь не указан стиль.

6 голосов
/ 08 февраля 2009

семантически для чего? Сильно подчеркнутый текст? семантически для чего?

«Акцент» и «сильный акцент» недостаточно четко определены, поэтому смысловой контент довольно низкий.

Вы можете придумать свою собственную интерпретацию: например, я лично использую:

  • для частей предложения, которые будут подчеркнуты при произнесении вслух

  • предназначен для фрагментов текста, которые необходимо визуально выделить: например, особо важные предложения и визуальное сканирование ключевых слов .

Это соответствует и в некоторой степени соответствует типичному использованию, но не является обязательным для HTML.

и как

не соответствует 1: 1 курсивом, даже если не учитывать стиль. Существуют и другие причины использования курсива, в том числе:

  • Другие работы согласно HTML 4.01 Спецификация

  • выбор фраз из других языков для основного текста, который составляет s raison d'être

почему нет семантического близнеца для

Потому что все ненавидят .

Даже в дни HTML2 он использовался редко, потому что он так уродлив.

4 голосов
/ 08 февраля 2009

В оформлении:

Так что есть стиль CSS текстовое оформление: подчеркивание для <u>, но не там один font-weight:bold для <strong> уже? Так и <em> тоже.

Нет. Не существует стиля CSS для <strong> или <em>. Для жирного шрифта есть CSS-теги, но это не одно и то же. сильный и они не означает жирным шрифтом. Они имеют в виду подчеркнуть. Подчеркивание может быть сделано с подчеркиванием, курсивом или жирным шрифтом в текстовом носителе, и это зависит от таблицы стилей, чтобы решить, какой. Но смысловой смысл просто «этот текст подчеркивается». И как бы вы реализовали «подчеркивание» в программе чтения с экрана? Это не имеет смысла. Подчеркивание характерно для текстовых носителей и, следовательно, относится к конкретной таблице стилей для текстового представления, а не к семантическому HTML, который можно использовать для представления данных с помощью речи или любых других средств.

В семантике:

<strong> семантически для чего? Сильно подчеркнутый текст? <em> есть семантический для чего? Подчеркнутый текст? Все, что принципиально отличается от друг друга и взаимоисключающие? Нет. Почему не может быть другого способа подчеркнуть текст? Вы знаете, как способ <u> делает

Поскольку strong и em не указывают как текст должен быть выделен, просто он должен быть выделен. подчеркивание указывает , как следует подчеркнуть, поэтому оно связано с представлением, а не с семантикой, и относится к файлу CSS. Я согласен, что разница между сильным и em неясна, но опять же, у нас также есть h1-h7. Дело в том, что даже без таблицы стилей читатель должен иметь возможность сделать вывод, что «это заголовок большего размера, чем этот», а также «этот текст выделен на больше , чем этот». Семантическое значение тегов не должно принципиально отличаться друг от друга. Совершенно важно иметь семантические теги, которые просто означают «больше, чем этот другой семантический тег». Потому что иногда нам нужно несколько слоев заголовков в нашем тексте, поэтому у нас есть h1-h7. И иногда нам нужен выделенный текст и выделенный текст очень . Но даже если бы мы этого не сделали, это не было бы оправданием для добавления <u> в качестве «другого семантического близнеца», потому что это не так. Это не семантический близнец, это ничего в семантике. подчеркивание не обязательно означает акцент. Это может означать и заголовок, или «это ссылка», или что-то еще, что вы хотите, чтобы оно значило. Это деталь презентации. И это не имеет смысла в нетекстовых СМИ. «Акцент» не является деталью презентации. Он несет смысловой смысл, который имеет смысл независимо от средств массовой информации. Вы также можете выделить информацию в фильмах, видеоиграх или в тексте, читаемом вслух.

Похоже, у вас сложилось впечатление, что strong и em - это просто сокращение (или от руки) жирным шрифтом или курсивом. Это не правда. Они могут использоваться для представления полужирного текста, подчеркнутого текста, текста, выделенного курсивом, или текста большего размера. Или их можно полностью игнорировать. Или они могут просто изменить произношение в программе чтения с экрана. Если вы когда-либо писали документы в LaTeX, вы заметите, что команда \emph там обычно отображается курсивом, а не жирным шрифтом. Конечно, это не обязательно, но это совершенно легальная интерпретация смысловой команды «выделение». Точно так же есть много других тегов, которые могут просто отображаться курсивом (кавычки или теги span с определенными классами CSS или даже заголовками.
<u>, с другой стороны, имеет очень специфическое значение в представлении, но не несет семантической ценности. Какую информацию он передает читателю? <strong> несет значение «этот текст выделен цветом, и на него следует обратить внимание», потому что он сильно подчеркивается. Что значит для текста быть подчеркнутым? Это может ничего не значить, или это может означать дюжину разных вещей.«Курсив», «полужирный» или «подчеркивание» - это атрибуты представления без семантического значения. Они могут быть применены к любому семантическому тегу HTML, который вам нравится. А семантические теги, такие как strong или em, могут использовать любые правила представления CSS, которые вам нравятся. Как вы, кажется, верите, нет картирования 1: 1. Это разные понятия. Тот факт, что браузер по умолчанию выбирает для отображения жирный текст жирным шрифтом, совершенно не имеет значения. Это просто поведение по умолчанию, потому что они должны были выбрать что-то , и это может быть переопределено в CSS.

Вопрос не в том, «можно ли это сделать в CSS» или «Это семантический близнец этого», а просто в том, «имеет ли он семантическое значение? Если да, то оба должны быть изменены и / или удалены полностью. Если да для первого, он принадлежит HTML, а если да, для второго - CSS.

4 голосов
/ 08 февраля 2009

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

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

Проблема только более выражена, так как подчеркивание является стандартным оформлением для ссылок в HTML.

1 голос
/ 23 июля 2012

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

Если вы действительно хотите подчеркнуть, это совершенно правильно сделать:

<style>
    strong {
        font-weight: normal;
        text-decoration: underline;
    }
</style>
1 голос
/ 18 февраля 2009

Семантический близнец равен . ^ _ ^ Это немного шутливо, но это правда. В Интернете подчеркнутый текст обозначает ссылку по умолчанию; этот шаблон настолько старый и устоявшийся, что почти каждый (зрячий) человек в сети автоматически использует его как часть взаимодействия со страницей.

HTML5 определяет немного разные значения для и , в частности, чтобы у вас нет просто было два тега, которые оба выполняют семантически одно и то же. Это просто вызывает такие вопросы, как ваш, когда вы удивляетесь, почему не существует третьего способа подчеркнуть что-то подчеркнутой презентацией (или «что у вас есть») по умолчанию.

В HTML5 все еще обозначает акцент. Использование изменяет значение предложения, акцентируя внимание на определенных словах или фразах. , с другой стороны, обозначает важность . Пометка слова или фразы как важной не меняет смысла предложения, а лишь направляет ваше внимание.

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

1 голос
/ 08 февраля 2009

Подчеркивание уродливо , будь то в книгах или в Интернете. Поэтому его следует использовать только для выделения в рукописном тексте, где нет альтернативы.

0 голосов
/ 08 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...