Семантический 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]