20 элементов HTML, улучшающих семантику текста
Семантические элементы HTML могут помочь веб-дизайнерам и разработчикам передавать смысл не только внешним видом страницы, но также с помощью тегов и элементов, которые используются при разработке, потенциально улучшая доступность, помогая индексации поисковыми системами, и даже пониманию человеком.
Термин “семантика” связан с пониманием языка. Если что-то более семантично - по определению, оно несёт больший смысл. Семантичный HTML - это разметка, которая более эффективна как средство коммуникации, так как она лучше передаёт намерения.
Семантичный HTML передаёт больше смысла
Рассмотрим в качестве примера разницу между элементами <div>
и <header>
. Первый описывает общую группу блочного содержимого в HTML документе, тогда как второй конкретизирует, что данный блок несёт в себе вводное содержимое, и возможно включает в себя элементы навигации.
<div id="top">Добро пожаловать</div> <header>Добро пожаловать</header>
В браузере стили позволяют представить элементы <div>
и <header>
одинаково. Но если поисковой робот, или программа чтения с экрана анализируют страницу, семантика начинает играть большую роль, так как эти инструменты по-разному обрабатывают данные элементы, вплоть до того, что они присвоят им разную значимость и вес.
Семантика становится более важной в тех местах, где грань между значениями тонка, либо использование того или иного тега уже несёт в себе смысл.
Элемент <s>
Элемент <s>
представляет собой содержимое, которое уже не является релевантным, точным или применимым. С его помощью можно показывать изменение цены на сайтах, связанных с электронной коммерцией, распроданный товар в меню, или нерелевантную рекламу.
<h1>Распродажа</h1> <p><s>Обычная цена $19.99</s> Сейчас $9.99</p> <s>Сэндвич с жареным сыром</s> Распродан <s>Номер с тремя спальнями $1,000 в месяц</s>
Элемент <s>
не должен использоваться для указания правок в документе, вроде удалённого текста. Элемент <s>
перечёркивает текст по умолчанию.
Элементы <ins>
и <del>
Элементы <ins>
и <del>
работают в паре, с их помощью можно описать места вставок и удалений в документе. Каждый элемент поддерживает два атрибута. Атрибут cite
хранит URL, ведущий к разъяснению изменения. Атрибут datetime
указывает, когда было произведено изменение.
По умолчанию содержимое тега <del>
будет выводиться перечёркнутым, тогда как содержимое текста <ins>
помечается подчёркиванием.
<h1>Повестка дня</h1> <ul> <li>Обсудить планы продаж</li> <li><del timestamp="2014-10-12T18/02-17/00">Обозреть Q3 Маркетинг</del></li> <li><ins cite="//sitepoint.com/change.html">Обозреть Q3 Маркетинг</ins></li> </ul> <p>Собрание будет вечером в <del>Четверг</del> <ins>Пятницу</ins>.</p>
Элемент <cite>
Кроме атрибутов cite
у вышеперечисленных тегов <ins>
и <del>
, элемент <cite>
является самостоятельным тегом, представляющим отсылку на чью-то работу или статью, книгу, комикс, рисунок, стих, песню, видеоролик или подобное.
Содержимое элемента <cite>
должно быть названием работы, на которую ссылается этот элемент, имя автора или художника, или URI на соответствующую работу.
<p>Мне действительно нравится статья Армандо, <cite>Введение в импорт HTML</cite>.</p>
Элемент <q>
Назначение - представление короткой цитаты, идущей в тексте, и не вынесенной в отдельный блок. Элемент <q>
включает в себя и пунктуацию (кавычки), и атрибут cite для указания ссылки. Важно помнить, что элемент <q>
предназначен для цитат, идущих в тексте, тогда как элемент <blockquote>
больше подходит для больших, обособленных цитат.
<p>I had not been aware, but according to <cite>Richard Kerr</cite>, <q cite="//www.sciencemag.org/content/340/6136/1031">Most robotic missions to Mars have failed</q>.</p>
Элементы <abbr>
и <dfn>
HTML элементы “сокращение” и “определение” зачастую используются вместе, для введения сокращения или акронима, в частности, когда это сокращение или акроним включены в относительно сложный, длинный или технический документ.
<p>The <dfn><abbr title="Internet Corporation for Assigned Names and Numbers">ICANN</abbr></dfn> is an international, not-for-profit organization responsible for managing web addresses.</p>
В приведённом примере браузеры, поисковые роботы и люди, глядя на разметку распознают, что “Internet Corporation for Assigned Names and Numbers” - это определяемая фраза, а “ICANN” - это акроним к этой фразе. Также, согласно стандарту, параграф, список или раздел, включающий тег <dfn>
также должны включать и связанное определение.
Элемент <code>
Элемент <code>
используется для вывода части компьютерного кода, который не должен исполняться, но должен быть выведен в виде читаемого кода.
<p>In jQuery, <code>.attr()</code> retrieves the value of an attribute of the first element in the matching set of elements.</p>
Элемент <code>
также может быть использован в совокупности с элементом <pre>
, для выделения блоков кода.
<pre><code> function loadAudio( object, url) { var request = new XMLHttpRequest(); request.open('GET', url, true); request.responseType = 'arraybuffer'; request.onload = function() { context.decodeAudioData(request.response, function(buffer) { object.buffer = buffer; }); } request.send(); } </code></pre>
Элемент <samp>
Используется для определения примера вывода компьютерной системы или приложения. Содержимое тега <samp>
должно быть текстом, получаемым при каком-либо взаимодействии с компьютером.
<p>If the upload fails, the system will notify the users that <samp>the file was not uploaded</samp>.</p>
Элемент <kbd>
Если дизайнер или разработчик хочет сказать, что пользователь должен напечатать (или напечатал) посредством клавиатуры, это можно правильно (семантически) указать с помощью элемента <kbd>
. В качестве примера можно указать комбинацию клавиш, которую должен нажать пользователь. Вложенные теги <kbd>
представляют единичную клавишу.
<p>To capture an image of the screen on a Macbook, simultaneously press <kbd>Shift</kbd>+<kbd>Control</kbd>+<kbd>Command</kbd>+<kbd>3</kbd>.</p>
Элемент <kbd>
также может быть использован для представления альтернатив клавиатурному вводу, например, голосовой ввод на мобильных устройствах.
Элемент <var>
Элемент <var>
представляет переменную в контексте математического выражения или программного кода.
<p><var>x</var> = 13</p> <p>A second variable, <var>pad</var>, is assigned to the pad element object. jQuery allows for this sort of concatenated selector.</p>
Элемент <data>
Этот HTML, элемент, наряду с атрибутом value
, ассоциирует некое содержимое с машинно-читаемым переводом этого содержимого. Элемент <data>
предназначен для использования в сочетании со скриптами.
Вот очень простой пример, указывается числовое представление слова “одиннадцать”.
<data value="11">одиннадцать</data>
Этот тег может быть использован и для относительно сложных ассоциаций. В данном примере с названием книги ассоциирован её Международный стандартный книжный номер.
<ul> <li><data value="978-0987467423">Jump Start Rails</data></li> <li><data value="978-0992279455 ">AngularJS: Novice to Ninja </data></li> </ul>
Элемент <time>
Похожий на элемент <data>
, элемент <time>
может быть использован для указания машинно-читаемой информации о дате и времени.
<p>She was born on her grandpa's birthday, <time datetime="2014-10-22 19:00">October 22, 2014</time>.</p>
Элементы <ruby>
, <rt>
и <rp>
Ruby-аннотации - небольшие вспомогательные кусочки текста, использующиеся как подсказки произношения для идеографической письменности, вроде японской, корейской или китайской письменности.
Элемент <ruby>
в HTML - это способ добавить Ruby-аннотацию. Зачастую такие подсказки к произношению отображаются в виде надстрочного текста над соответствующим символом.
Элемент <ruby>
часто используется вместе с элементом <rt>
, который описывает произношение единичного символа в виде Ryby-аннотации, и элементом <rp>
, описывает запасную пунктуацию для браузеров, не поддерживающих Ruby аннотации.
У рабочей группы, занимающейся развитием веб-технологий, основанных на гипертекстовых приложениях (WHATWG), есть несколько великолепных примеров Ruby-аннотаций, включая и следующий:
<ruby>?<rt>??</ruby><ruby>?<rt>?</ruby> ?<ruby>?<rt>?</ruby>??<ruby>?<rt>??</ruby>???
Чтобы лучше понять пример, рассмотрим первую аннотацию:
<ruby>?<rt>??</ruby>
При правильном отображении, символы после тега <rt>
(??
), будут отображены над символом ?
.
Если кто-то захочет позаботиться о совместимости со старыми браузерами, с помощью элемента <rp>
можно добавить запасной вариант отображения.
<ruby>?<rp>(</rp><rt>?? </rt><rp>)</rp></ruby>
В данном примере браузеры, которые не поддерживают Ruby-аннотации, отобразят произношение символа в скобках, ?(?? )
Элементы <sup>
и <sub>
Представляющие надстрочное и подстрочное написание элементы <sup>
и <sub>
обозначают “типографские соглашения”, и не должны использоваться просто как копия соответствующих CSS правил.
Возможно, наиболее распространённый пример использования этих тегов - французские сокращения, в которых обычно используются надстрочное начертание. Конкретно, французское слово compagnie (компания), зачастую представляется следующим сокращением: Cie
<span lang="fr"><abbr>C<sup>ie</sup></abbr></span>
Элемент <mark>
Если бы в HTML был инструмент, подсвечивающий текст жёлтым цветом - это был бы элемент <mark>
. Этот тег подсвечивает содержимое, указывая на его особое значение в определённом контексте. Например, если кто-то хочет выделить ключевое слово в разделе, которое подходит под поисковой запрос, то было бы разумным воспользоваться тегом <mark>
. В нижеприведённом примере искали слово “audio”.
<p>Web <mark>Audio</mark> uses an <mark>Audio</mark>Context interface to represent <mark>Audio</mark>Nodes. Within the <mark>Audio</mark>Context an <mark>audio</mark> file, as an example, is connected to a processing node, which in turn, is connected to a destination like the speakers on your laptop. Each node in the <mark>Audio</mark>Context is modular so that a web developer can plug (or unplug) nodes like a toddler snapping Lego blocks in place to build relatively more complicated structures.</p>
В блочной цитате элемент <mark>
может быть использован для добавления акцента на текст, не найденный в оригинальном контексте.
<blockquote>I included the jQuery JavaScript library via Google’s content delivery network. <mark>jQuery is in no way required</mark> for the Web Audio API, but its powerful selectors will make it a lot easier to interact with the HTML pads. I am also linking to a local JavaScript file that will contain the code for working with the Web Audio API.</blockquote>
Элемент <wbr>
Браузеры - по крайней мере те, что используются в ноутбуках и смартфонах - имеют ряд правил, по которым они решают, где добавлять переносы строки. Эти правила частично важны в адаптивном дизайне, так как ширина определённого элемента может разниться от контекста к контексту.
Тег <wbr>
описывает возможности переноса слов или переноса строк, которые браузер не может корректно определить самостоятельно. Эта возможность может быть полезна для длинных слов, URL или блоков кода. Эти длинные элементы, к которым обычно не применяется перенос, могут повлиять на макет страницы.
В США, например, гавайское имя углохвостого спинорога состоит из 21 буквы: humuhumunukunuku?pua?a. С помощью тега <wbr>
мы можем подсказать браузеру, как разбить слово на соответствующие слоги.
humu<wbr>humu<wbr>nuku<wbr>nuku<wbr>a<wbr>pua`a
Заключение
HTML предоставляет множество отличных семантических тегов, позволяя разработчикам сайтов передавать смысл напрямую посредством элементов.
Не все эти элементы добавляют доступности, или какие-то другие преимущества, но в любом случае они делают код понятнее для разработчика.
Были ли вам полезны эти элементы? Поделитесь своими мыслями в комментариях.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.sitepoint.com/20-html-elements-better-text-semantics/
Перевел: Станислав Протасевич
Урок создан: 19 Декабря 2014
Просмотров: 12342
Правила перепечатки
5 последних уроков рубрики "HTML5"
-
Расширяем возможности HTML за счёт создания собственных тегов
В этом уроке я покажу процесс создания собственных HTML тегов. Пользовательские теги решают множество задач: HTML документы становятся проще, а строк кода становится меньше.
-
Определение доступности атрибута HTML5 с помощью JavaScript
Сегодня мы посмотрим, как можно организовать проверку доступности атрибута HTML5 с помощью JavaScript. Проверять будем работу элементов details и summary.
-
HTML5: API работы с вибрацией
HTML5 - глоток свежего воздуха в современном вебе. Она повлиял не только на классический веб, каким мы знаем его сейчас. HTML5 предоставляет разработчикам ряд API для создания и улучшения сайтов с ориентацией на мобильные устройства. В этой статье мы рассмотрим API для работы с вибрацией.
-
Создание форм с помощью Webix Framework — 4 практических примера
Веб дизайнеры частенько сталкиваются с необходимостью создания форм. Данная задача не простая, и может вызвать головную боль (особенно если вы делаете что-то не стандартное, к примеру, много-страничную форму). Для упрощения жизни можно воспользоваться фрэймворком. В этой статье я покажу вам несколько практических приёмов для создания форм с помощью фрэймворка Webix.
-
Знакомство с фрэймворком Webix
В этой статье мы бы хотели познакомить вас с фрэймворком Webix. Для демонстрации возможностей данного инструмента мы создадим интерфейс online аудио плеера. Не обольщайтесь — это всего лишь модель интерфейса. Исходный код доступен в демо и на странице GitHub.