Что такое семантика и как это относится к HTML?

После публикации заметки про теги abbr и acronym и судя по тем рассуждениям, которые были в комментариях, мне бы хотелось прояснить один важный момент, который нужно понимать, прежде чем говорить о языке HTML и тегах, которые в нем используются.

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

Что такое семантика кода?

Семантика (с лингвистической точки зрения) – это смысл, информационное содержание языка или отдельной его единицы.

Как мы знаем, структурными единицами языка HTML являются теги, они и являются теми самими отдельными единицами, которые несут смысл, информационное содержание.

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

Таким образом, когда мы создаем веб-страницу, с помощью языка HTML, мы объясняем компьютеру, какой элемент, какую роль должен играть на странице.

Мы должны понимать, что содержание каждого элемента веб-страницы должно быть заключено в теги, которые бы соответствовали их логическому и смысловому назначению.

Т.е. заголовки в тексте заключались бы в теги h1-h6, абзацы в теги p, списки в теги ul/ol (li) и.т.д.

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

А теперь вопрос, можем ли мы заголовок на веб-странице, заключить в тег абзаца?
А почем нет? Конечно, можем. Многие скажут, но ведь при этом мы теряем оформление, которое имеют заголовки h1-h6. Но, на самом деле, оформление здесь никакой роли не играет. С помощью стилей CSS, мы можем присвоить любому абзацу точно такое же оформление, которое было у элемента h1-h6.

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

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

Поэтому, прежде чем заключать элемент в какой-либо тег, желательно подумать, а какую функцию, смысл он несет на странице?

Возникает логичный вопрос, а зачем в таком случае вообще нужна семантика кода?

Зачем заголовки делать заголовками, абзацы делать абзацами, аббревиатуры делать аббревиатурами и.т.д.?

По моему мнению, есть несколько причин, которые помогут вам склониться в сторону семантического кода. Что нам дает семантическая разметка?

1) Информацию о том, как браузеру по умолчанию отображать тот или иной элемент на странице;

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

2) Семантический код лучше читается и воспринимается поисковыми системами;

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

2) Код более понятный для человека;

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

3) Проще получить доступ к элементу и как следствие большая гибкость.

Делая код семантическим, вы сможете намного проще обращаться к этим элементам с помощью специальных средств, которые работают с элементами на веб-страницах, например, языки CSS, Javascript и др.

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

abbr {color:red;}

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

Это всего лишь один пример, которых можно привести массу.

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

Дело ваше!

Вы должны сами для себя принять это решение.

Сервис для онлайн тестирования Вашего сайта в старых версиях Internet Explorer (IE 6, 7, 8).

Ни для кого не секрет, что самым «причудливым» в способах отображения элементов на веб-страницах является браузер Internet Explorer. Особенно это касается его старых версий IE 6, 5.5.

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

Компания Microsoft понимает сложившуюся ситуацию, но заявила, что пока не в состоянии отказаться от поддержки этого браузера.

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

Устанавливать несколько версий браузера Internet Explorer на операционную систему Windows, оказывается не всегда просто и удобно. Хотя есть программные комплекты, которые позволяют сделать это.

Например:

1) IETester – среда для тестирования в Internet Explorer до 9й версии включительно.

http://www.my-debugbar.com/wiki/IETester/HomePage

2) Multiple IE

http://tredosoft.com/Multiple_IE

Не всегда хочется устанавливать какое-то лишнее программное обеспечение, которое будет засорять и тормозить систему.

Я предлагаю вашему вниманию онлайн сервис для тестирования своих страниц в старых версиях Internet Explorer.

Вот ссылка:

http://ipinfo.info/netrenderer/

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

Все довольно просто, пользуйтесь.

И напоследок немного юмора в тему:

Теги HTML abbr и acronym. Зачем они нужны и как ими пользоваться?

При создании веб-страниц, иногда возникают ситуации, что в тексте встречаются аббревиатуры или акронимы.

Краткая справка для тех, кто не знаком с этими понятиями:

Аббревиатура – это название или обозначение, состоящее из начальных букв или цифр словосочетания, используемое для сокращения и ускорения передачи информации.

Например, ЦДСА (цэ-дэ-са) — Центральный дом Советской армии

ЛФК [эл-фэ-ка] — лечебная физическая культура

В отличии от аббревиатуры, акроним - это устоявшееся сокращение, которое мы с вами уже привыкли употреблять как отдельное самостоятельное слово.

Например, США, СПИД, НАТО, ВУЗ и.т.д.

В чем, собственно говоря, проблема?

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

Конечно, это так, НО если мы хотим придать нашему тексту и веб-странице удобства и функциональности, в некоторых ситуациях нам стоит использовать специальные тэги HTML (abbr или acronym) для выделения акронимов и аббревиатур на странице.

Что это нам дает?

1) Мы сообщаем поисковым системам, что данные символы на странице являются сокращением и их следует понимать как отдельное слово, а не опечатку.

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

2) Мы создаем удобство для пользователя.

Аббревиатуры в тексте выделяются, и при наведении курсора мыши на них появляется всплывающая подсказка с расшифровкой.

3) Совместно со стилями CSS мы можем несколькими строками кода придать уникальное оформление всем сокращениям, которые встречаются на страницах сайта.

Итак, давайте посмотрим, как воспользоваться тегами abbr и acronym на практике.

Как вы уже, скорее всего, поняли abbr – это тег, отвечающий за аббревиатуры, а acronym – за акронимы.

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

Например,

<p><abbr> ЛФК</abbr> очень полезна</p>

Или

<p><acronym> США</acronym> высказали свое
мнение по следующему вопросу</p>

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

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

Например,

<acronym title="Соединенные Штаты
Америки">США</acronym>

И еще, имейте в виду, что Internet Explorer 6, тег< abbr> не поддерживается, вместо него рекомендуется использовать <acronym>.

Это все, о чем я хотел сегодня рассказать. Делайте Ваши страницы функциональнее.

Удачи!

——————————————————-

Если Вы хотите изучить HTML, то Вам сюда:

http://www.webgyry.info/levels/level1/land

——————————————————-