Семантический HTML — это использование разметки HTML для усиления семантики или смысла информации на веб-страницах и веб-приложениях, а не просто для определения ее представления или внешнего вида . Семантический HTML обрабатывается традиционными веб-браузерами , а также многими другими пользовательскими агентами . CSS используется для указания того, как он представляется пользователям-людям.
HTML включает семантическую разметку с момента своего создания. [1] В документе HTML автор может, среди прочего, «начать с заголовка; добавить заголовки и абзацы; добавить акценты к тексту; добавить изображения; добавить ссылки на другие страницы; [и] использовать различные виды списков». [2]
Различные версии стандарта HTML включали презентационную разметку, такую как <font>
(добавлено в HTML 3.2; удалено в HTML 4.0 Strict), <i>
(все версии) и <center>
(добавлено в HTML 3.2). Также существуют семантически нейтральные элементы span и div . С конца 1990-х годов, когда каскадные таблицы стилей начали работать в большинстве браузеров, веб-авторов призывали избегать использования презентационной разметки HTML с целью разделения контента и представления . [3]
В 2001 году Тим Бернерс-Ли принял участие в обсуждении семантической паутины , где было представлено, что интеллектуальные программные «агенты» могут однажды автоматически сканировать Интернет и находить, фильтровать и сопоставлять ранее не связанные, опубликованные факты для выгоды конечных пользователей. [4] Такие агенты не являются обычным явлением даже сейчас, но некоторые идеи Web 2.0 , мэшапов и веб-сайтов сравнения цен могут быть близки. Главное различие между этими гибридами веб-приложений и семантическими агентами Бернерса-Ли заключается в том, что текущая агрегация и гибридизация информации обычно проектируются веб-разработчиками, которые уже знают веб-местоположения и семантику API конкретных данных, которые они хотят мять, сравнивать и объединять.
Важным типом веб-агента, который автоматически сканирует и читает веб-страницы, не имея предварительного знания о том, что он может найти, является веб-краулер или паук поисковой системы. Эти программные агенты зависят от семантической ясности веб-страниц, которые они находят, поскольку они используют различные методы и алгоритмы для чтения и индексации миллионов веб-страниц в день и предоставляют веб-пользователям возможности поиска .
Для того чтобы поисковые роботы могли оценивать значимость фрагментов текста, которые они находят в документах HTML, а также для тех, кто создает мэшапы и другие гибриды, а также для более автоматизированных агентов по мере их разработки, семантические структуры, существующие в HTML, должны широко и единообразно применяться для выявления смысла опубликованной информации. [5]
В то время как истинная семантическая сеть может зависеть от сложных онтологий RDF и метаданных , каждый документ HTML вносит свой вклад в осмысленность Интернета посредством правильного использования заголовков, списков, названий и другой семантической разметки везде, где это возможно. Это «простое» использование HTML было названо «Обычным старым семантическим HTML» или POSH. [6] Правильное использование «тегов» Web 2.0 создает фолксономии , которые могут быть столь же или даже более значимыми для многих. [5] HTML 5 представил новые семантические элементы, такие как , , , , , , , и . [7] В целом, цель W3C — постепенно вводить больше способов для браузеров, разработчиков и сканеров, чтобы лучше различать различные типы данных, обеспечивая такие преимущества, как лучшее отображение в браузерах на разных устройствах. <section>
<article>
<footer>
<progress>
<nav>
<aside>
<mark>
<time>
Презентационные элементы формально не были объявлены устаревшими в рекомендациях HTML 4.01 и XHTML, но были рекомендованы против. В HTML 5 некоторые из этих элементов, такие как <i>
и <b>
, по-прежнему указаны, поскольку их значение было четко определено «как стилистически смещенное относительно обычной прозы без передачи какой-либо дополнительной важности». [8] [9]
В случаях, когда документ требует более точной семантики, чем та, которая выражена только в HTML, фрагменты документа могут быть заключены в span
элементы div
с осмысленными именами классов [10], такими как <span class="author">
и <div class="invoice">
. Когда эти имена классов также являются идентификатором фрагмента в схеме или онтологии, они могут ссылаться на более определенное значение. Микроформаты формализуют этот подход к семантике в HTML.
Одним из важных ограничений этого подхода является то, что такая разметка, основанная на включении элементов, должна соответствовать условиям правильности. Поскольку эти документы в целом имеют древовидную структуру, это означает, что только сбалансированные фрагменты из поддерева могут быть размечены таким образом. [11] [12] Для разметки любого произвольного раздела HTML потребуется механизм, независимый от самой структуры разметки, такой как XPointer .
Хороший семантический HTML также улучшает доступность веб-документов (см. также Руководство по обеспечению доступности веб-контента ). [ необходима ссылка ] Например, когда программа чтения с экрана или аудиобраузер могут правильно определить структуру документа, они не будут тратить время пользователя с нарушениями зрения, зачитывая повторяющуюся или нерелевантную информацию, если она была размечена правильно.
В 2010 году Google указал три формы структурированных метаданных, которые их системы будут использовать для поиска структурированного семантического контента на веб-страницах. Такая информация, связанная с отзывами, профилями людей, списками предприятий и событиями, будет использоваться Google для улучшения «фрагмента» или короткого фрагмента цитируемого текста, который отображается, когда страница появляется в результатах поиска. Google указывает, что эти данные могут быть предоставлены с использованием микроданных , микроформатов или RDFa . [13] Микроданные указываются внутри itemtype
и itemprop
атрибуты добавляются к существующим элементам HTML; ключевые слова микроформата добавляются внутри class
атрибутов, как обсуждалось выше; и RDFa опирается на rel
, typeof
и property
атрибуты добавляются к существующим элементам. [14]