Опубликован: 28.11.2008 | Уровень: для всех | Доступ: платный
Лекция 21:

Менее известные семантические элементы

< Лекция 20 || Лекция 21: 12 || Лекция 22 >

Определение экземпляров

Существует некоторая путаница с правильным использованием элемента dfn, который описан в спецификации HTML как "определение экземпляра вложенного термина". Это удивительно близко к идее элемента dl (термин определения), используемого в списках определений.

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

Поэтому, например, если в тексте многократно встречается аббревиатура HTML, то использование всякий раз кода "<abbr title="HyperText Markup Language">HTML</abbr>", было бы избыточным, визуально отвлекающим и для пользователей считывателей экрана, возможно, утомительным, когда HTML раскрывался бы снова и снова, хотя они уже и слышали, что он означает.

Вместо этого можно вставить следующий код в том месте, где он впервые определяется для читателей:

<p><dfn><abbr>HTML</abbr></dfn> ("HyperText Markup Language") is 
a language to describe the contents of web documents. [...]</p>

Затем в дальнейшем, когда используется аббревиатура HTML, ее можно пометить просто как "<abbr>HTML</abbr>". Агент пользователя может затем предоставить пользователю некоторый метод извлечения определяющего экземпляра этой аббревиатуры. К сожалению пока ни один агент пользователей в настоящее время этого не делает, включая считыватели экрана. Было бы лучше, поэтому, использовать атрибут title.

<p><dfn><abbr title="HyperText Markup Language">HTML</abbr></dfn> 
("HyperText Markup Language") is a language to describe the contents of web documents. [...]</p>

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

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

<p><abbr title="HyperText Markup Language">HTML</abbr> 
(<dfn>HyperText Markup Language</dfn>) is a language to 
describe the contents of web documents. [...]</p>

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

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

Это неудачное решение, когда спецификация была создана без четких рекомендаций о том, как предполагается использовать элемент, и, вероятно, не основывалась на каких-либо реальных применениях этого элемента — иначе был бы метод соединения термина с его полным описанием или определением. Спецификация HTML 5 содержит значительно больше деталей об использовании dfn, но она находится все еще в стадии чернового проекта и пока не подходит для приложения в Web.

Верхние и нижние индексы

Чтобы пометить часть некоторого текста как верхний или нижний индекс (слегка выше или ниже по сравнению с остальным текстом), используют элементы sup и sub .

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

Пример применения обоих элементов:

<p>The chemical formula for water is H<sub>2</sub>O, and it
is also known as hydrogen hydroxide.</p>
<p>The famous formula for mass-energy equivalence as derived
by Albert Einstein is E=mc<sup>2</sup> - energy 
is equal to the mass multiplied by the speed of light 
squared.</p>

Разрыв строки

В связи с тем, как HTML определяет разделитель, невозможно управлять разрывом строк текста (как в случае разметки почтового адреса в качестве параграфа, но с представлением каждой части адреса на отдельной строке) простым нажатием клавиши Enter во время записи текста.

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

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

Поэтому, например, можно написать показанный ранее контактный адрес компании Opera следующим образом:

<p>Our company address: </p>
<address>
Opera Software ASA,<br>Waldemar Thranes gate 98,<br>
NO-0175 OSLO,<br>NORWAY
</address>

Естественно, если используется XHTML, а не HTML, то элемент должен записываться следующим образом: <br />.

Горизонтальная линейка

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

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

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

Элемент hr не имеет необычных атрибутов и должен оформляться с помощью CSS, если обычного представления будет недостаточно.

Как и для разрыва строки, при использовании XHTML, а не HTML, используйте <hr />.

Изменения в документах (вставка и удаление)

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

Новый текст (вставки) должен быть заключен в элемент ins. Текст, который был удален (удаления) должен быть заключен в элемент del. Если текст изменился, что в действительности является удалением и вставкой в одной точке документа, правильная форма предполагает сначала удаление текста, а затем вставку.

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

Если причина изменения сообщается на странице или где-то в Web, необходимо сделать ссылку на этот документ или фрагмент в атрибуте cite. Он, по сути, сообщает: "Это изменение произошло по следующей причине".

Можно также указать время, когда было сделано изменение, используя атрибут datetime. Значение должно быть отметкой времени по стандарту ISO, которая имеет обычно форму "YYYY-MM-DD HH:MM:SS ±HH:MM" (дополнительная информация доступна в Wikipedia, http://en.wikipedia.org/wiki/ISO_8601).

Пример использования обоих атрибутов:

<p>We should only solve problems that actually arise. As
  <cite><del datetime="2008-03-25 18:26:55 Z"
  cite="/changes.html#revision-4">Donald Knuth</del><ins
  datetime="2008-03-25 18:26:55 Z"
  cite="/changes.html#revision-4">C. A. R. Hoare</ins></cite>
  said: <q>premature optimization is the root of all 
  evil</q>.</p>

Некоторые будущие элементы HTML

Как отмечалось несколько раз в этой и некоторых других статьях, в данный момент создается предложение по HTML версии 5 (http://www.w3.org/html/wg/html5/). Это будет наиболее радикальное обновление HTML с момента его возникновения.

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

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

  • header - содержит верхний колонтитул (титульные данные) страницы; состоящий обычно из логотипа и заголовка, возможно короткой области "о странице" и некоторой глобальной навигации сайта, такой как ссылки login/logout/profile.
  • footer - содержит нижний колонтитул страницы, который состоит обычно из дополнительных ссылок по сайту, копирайта и другой юридической информации
  • nav - содержит основные навигационные ссылки страницы
  • article - содержит часть страницы, которая является областью основного контента, исключая все другие элементы страницы, такие как навигация, верхний и нижний колонтитулы
  • aside - содержит информацию врезки в заданной области страницы, и может также использоваться для извлечения цитат или примечаний в основном контенте

Существуют и другие элементы, которые можно найти в самой спецификации HTML 5 (http://www.whatwg.org/specs/web-apps/current-work/).

Заключение

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

Об авторе

Марк Норман Френсис работает с Интернет с момента изобретения Web. Он работает в настоящее время в компании Yahoo! в качестве архитектора внешнего интерфейса для крупнейшего в мире Web-сайта, определяя лучшие методы, стандарты кодирования и качества разработки Web.

До Yahoo! он работал в Formula One Management, Purple Interactive и City University на различных должностях, включая разработку Web приложений, серверное программирование CGI и архитектура систем. Он приписывает себе блог по адресу http://marknormanfrancis.com/.

Источник: Andy Budd http://flickr.com/photos/andybudd/98405468/

Материалы этого курса имеют лицензию Creative Commons Attribution, Non Commercial - Share Alike 2.5 license.
< Лекция 20 || Лекция 21: 12 || Лекция 22 >
Марина Походаева
Марина Походаева

Помогите мне. Я ничего не понимаю в курсе ((((((   (от слова "совсем") и мне от этого очень грустно. Есть ли какие-нибудь курсы для "чайников", самые простые в объяснении. ПАМАГИТЕ!!!

Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

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

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Галина Матрук
Галина Матрук
Молдова, Республика, Кишинев, UTM, 2010