Ссылки являются концептуальной конструкцией, создаваемой элементами a, area и link, которая представляет собой соединение двух ресурсов, один из которых является текущим Document. Есть два типа ссылок в HTML:

Ссылки на внешние ресурсы

Это ссылки на ресурсы, используемые для расширения текущего документа, обычно автоматически обрабатываемые пользовательским агентом (ПА).

Гиперссылки

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

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

Аналогично для элементов a и area  с атрибутом href и атрибутом rel ссылки должны создаваться по ключевым словам атрибута rel, как определено для этих ключевых слов в разделе Типы гиперссылок. Однако, в отличие от элементов link, элементы a и area с атрибутом href, либо не имеющие атрибута rel, либо имеющие атрибут rel без ключевых слов, определённые как специфицирующие гиперссылки, также должны создавать гиперссылку. Эта подразумеваемая гиперссылка не имеет специального значения (она не имеет типа ссылки), кроме связывания документа элемента с ресурсом, заданным атрибутом href.

Гиперссылка может иметь одну или более аннотаций гиперссылки, которые модифицируют семантику обработки такой гиперссылки.

Атрибут href в элементах a и area должен иметь значение – правильный URL, потенциально окружённый пробелами.

 Атрибут href в элементах a и area не требуется (not required); когда эти элементы не имеют атрибутов href, они не создают гиперссылок.

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

Когда вызывается поведение активации элемента a или area, ПА может разрешить пользователю указать, преференцию – использовать ли гиперссылку для навигации или следует загрузить ресурс.

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

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

Атрибут download, если имеется, указывает, что автор намерен использовать ссылку для загрузки ресурса. Этот атрибут может иметь значение; оно, если имеется, специфицирует имя файла по умолчанию, которое автор рекомендует использовать для отметки ресурса в локальной файловой системе. Ограничений на допустимые значения нет, но предупреждаем авторов, что большинство файловых систем имеют ограничения в отношении пунктуации имён файлов, и ПАгентам, вероятно, нужно соответственно подстраивать имена файлов.

Атрибут rel в элементах a и area управляет типом ссылок, создаваемых элементом. Значением атрибута должен быть набор лексем с разделением пробелами. Допустимые ключевые слова и их значения определены ниже.

Атрибут rel не имеет значения по умолчанию. Если атрибут отсутствует, или если ни одно из значений атрибута не распознаётся ПАгентом, тогда документ не имеет определённых отношений с целевым ресурсом, кроме наличия связывающей их гиперссылки.

Атрибут hreflang в элементах a и area , которые создают гиперссылки, если имеется, задаёт язык связанного ресурса. Это – чисто уведомительное. Значением должен быть правильный BCP 47 тэг языка. [BCP47] ПАгенты не должны рассматривать этот атрибут как авторитетный — при извлечении ресурса ПАгенты должны использовать только языковую информацию (не колбасу...), ассоциированную с ресурсом, для определения его языка, а не метаданные ссылки на ресурс.

Атрибут type, если имеется, задаёт MIME-тип связанного ресурса. Это – чисто уведомительное. Значением должен быть правильный MIME-тип. ПАгенты не должны рассматривать этот атрибут как авторитетный — при извлечении ресурса ПАгенты не должны использовать метаданные ссылки на ресурс для определения его типа.

Когда пользователь переходит по гиперссылке, созданной элементом subject, ПА должен выполнить следующие шаги:

  1. Пусть replace будет false.

  2. Пусть source будет контекстом браузинга, который содержит Document-объект, с которым subject в запросе ассоциирован.

  3. Если пользователь указывает особый контекста браузинга при переходе по гиперссылке, или если ПА сконфигурирован на переход по гиперссылкам путём навигации по конкретному контексту браузинга, тогда пусть target будет этим контекстом браузинга.

    Иначе, если subject это элемент a или area, имеющий атрибут target, тогда пусть target будет контекстом браузинга, который выбран через применение правил выбора контекста браузинга при заданном  имени контекста браузинга, используя значение атрибута target в качестве имени контекста браузинга. Если эти правила дают в результате создание нового контекста браузинга, установить replace значением true.

    Иначе, если target это элемент a или area без атрибута target, но Document содержит элемент base с атрибутом target, тогда пусть target будет контекстом браузинга, который выбран через применение правил выбора контекста браузинга при заданном  имени контекста браузинга, используя значение атрибута target первого такого элемента base в качестве имени контекста браузинга. Если эти правила дают в результате создание нового контекста браузинга, установить replace значением true.

    Иначе пусть target будет контекстом браузинга, в котором находится сам subject.

  4. Разрешить URL, заданный атрибутом href этого элемента, относительно этого элемента.

  5. Если это удалось, пусть URL будет результирующим абсолютным URL.

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

  6. В случае с серверными картами изображений – присоединить суффикс гиперссылки к URL.

  7. Поставить в очередь задачу навигации по target контекста браузинга до URL. Если replace – true, навигация должна выполняться с включённой заменой. Исходным контекста браузинга должен быть source.

Источник задачи для задач, упомянутых выше, это источник задачи DOM-манипуляции.

4.8.3 Загрузка ресурсов

В некоторых случаях ресурсы предназначены для последующего использования, а не для немедленного просмотра. Для указания на то, что ресурс предназначен для загрузки и использования позднее, а не для немедленного использования, может быть специфицирован атрибут download в элементе a или area, который создаёт гиперссылку на этот ресурс.

Атрибуту, кроме того, можно присвоить значение, указав имя файла, который ПА должны использовать при сохранении ресурса в файловой системе. Это значение может быть переопределено параметрами имени файла HTTP-хедэра Content-Disposition. [RFC6266]

В ситуациях кросс-происхождения атрибут download должен быть объединён с HTTP-хедэром Content-Disposition, в частности – с типом диспозиции attachment, чтобы избавить пользователя от сообщений о возможности отвратительной активности. (Это чтобы защитить пользователя от загрузки чувствительной персональной информации без полного понимания того, что происходит.)


Когда пользователь загружает по гиперссылке, созданной элементом, ПА должен выполнить следующие шаги:

  1. Разрешить URL, заданный атрибутом href этого элемента, относительно этого элемента.

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

  3. Иначе пусть URL будет результирующим абсолютным URL.

  4. В случае с серверными картами изображений – присоединить суффикс гиперссылки к URL.

  5. Возвратиться в алгоритм, вызвавший эти шаги, и продолжить выполнение этих шагов асинхронно.

  6. Извлечь URL и обработать результирующий ресурс как загрузку.

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

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

Этот алгоритм предназначен для снижения риска загрузки файлов с непроверенных сайтов, и ПАгентам настоятельно рекомендуется следовать ему.

  1. Пусть filename это void значение.

  2. Если ресурс имеет хедэр Content-Disposition, этот хедэр специфицирует тип диспозиции attachment, а хедэр содержит информации имени файла, далее – пусть filename имеет значение специфицированное этим хедэром, затем перескочить ниже на шаг sanitize. [RFC6266]

  3. Пусть interface origin это источник Document'а, в котором действия загрузки или навигации дают в результате инициацию загрузки, если имеется.

  4. Пусть resource origin это источник URL загружаемого ресурса, если только компонент scheme этого URL не data, а в этом случае пусть resource origin будет тот же, что interface origin, если имеется.

  5. Если нет interface origin, то пусть trusted operation будет true. Иначе пусть trusted operation будет true, если resource originтот же источник, что interface origin, иначе – false.

  6. Если trusted operation – true и ресурс имеет хедэр Content-Disposition, и этот хедэр содержит информацию имени файла, то пусть filename имеет значение, специфицированное этим хедэром, затем перескочить ниже на шаг sanitize. [RFC6266]

  7. Если загрузка не была инициирована по гиперссылке, созданной элементом a или area, или если элемент, из которого гиперссылка была инициирована, не имел атрибута download, когда загрузка была инициирована, или если такой атрибут имелся, но его значением во время инициации загрузки была пустая строка, тогда перескочить на шаг no proposed file name.

  8. Пусть proposed filename имеет значение атрибута download элемента гиперссылки, инициировавшего загрузку на момент, когда загрузка была инициирована.

  9. Если trusted operation – true, пусть filename имеет значение из proposed filename, и перескочить ниже на шаг sanitize.

  10. Если ресурс имеет хедэр Content-Disposition и этот хедэр специфицирует тип диспозиции attachment, пусть filename имеет значение из proposed filename, и перескочить ниже на шаг sanitize. [RFC6266]

  11. No proposed file name: если trusted operation – true, или если пользователь указал предпочтение – получить ресурс запроса через загрузку, пусть filename имеет значение, выведенное из URL ресурса в ПА-специфичной манере, затем перескочить ниже на шаг sanitize.

  12. Действовать в ПА-специфичной манере, чтобы уберечь пользователя от потенциально небезопасной загрузки кросс-происхождения. Если загрузка не прервалась, то пусть filename получит значение имени предпочтительного пользовательского файла или имени файла, выбранного ПАгентом, затем перескочить ниже на шаг sanitize.

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

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

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

  13. Sanitize: опционно пользователю влиять на filename. Например, ПА может запросить у пользователя имя файла, возможно, предоставляя значение filename , как определено выше, в качестве значения по умолчанию.

  14. Настроить filename для использования в локальной файловой системе.

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

  15. Если платформные соглашение никаким способом не используют расширения для определения типа файла в данной файловой системе, тогда возвратить filename как имя файла и прервать выполнение этих шагов.

  16. Пусть claimed type это тип, заданный Content-Type метаданными ресурса, если они известны. Пусть named type будет типом, заданным расширением filename'а, если имеется. Для целей этого шага type это отражение MIME-типа в расширение.

  17. Если named type согласуется с предпочтениями пользователя (например, потому что значение в filename было определено через запрос пользователя), то возвратить filename как имя файла и прервать выполнение этих шагов.

  18. Если claimed type и named type одного типа (то есть тип заданный в Content-Type метаданных ресурса согласуется с типом, заданным расширением filename'а), то возвратить filename как имя файла и прервать выполнение этих шагов.

  19. Если claimed type известен, то изменить filename, добавив расширение, соответствующее claimed type.

    Иначе, если named type известен как потенциально опасный (например, он по соглашениям платформы будет считаться исполняемым файлом, скриптом оболочки, HTML-приложение или документом с исполняемыми макросами), то опционно изменить filename, добавив известное безопасное расширение (например, ".txt").

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

  20. Возвратить filename в качестве имени файла.

Для целей этого алгоритма расширение/extension имени файла состоит из любой части имени файла, которую платформные соглашения используют для идентификации типа файла. Например, многие ОС используют для этого часть имени файла, идущую после последней точки (".") в имени файла, для определения типа файла и, соответственно, способ открытия или выполнения файла.

ПАгентам следует игнорировать любую часть информации пути или директории, предоставленной самим ресурсом, его URL и любым атрибутом download для определения места хранения файла в файловой системе пользователя.

4.8.4 Типы гиперссылок

В следующей таблице указаны типы ссылок, определённые в данной спецификации. Это таблица не является нормативной; определения типов ссылок даны в последующих разделах.

В этом разделе термин referenced document/(ссылочный документ; документ, на который указывает ссылка) относится к ресурсу, идентифицированному элементом, представляющим ссылку, а термин current document/(текущий документ) означает ресурс, внутри которого находится сам элемент, представляющий ссылку.

Для определения того, какой тип ссылки применить к элементу link, a или area, атрибут rel элемента должен быть разделён по пробелам. Результирующие лексемы являются типами ссылки, применяемыми к данному элементу.

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

Типы ссылки всегда ASCII-регистронезависимыми и должны сравниваться, как есть.

Таким образом, rel="next" это то же самое, что rel="NEXT".

Тип ссылки Влияет на... Краткое описание
link a и area
alternate гиперссылку гиперссылку Даёт альтернативные представления текущего документа.
author гиперссылку гиперссылку Даёт ссылку на автора текущего документа или статьи.
bookmark не допускается гиперссылку Даёт permalink на ближайший раздел-предок.
help гиперссылку гиперссылку Предоставляет ссылку на контекстную помощь.
icon внешний ресурс не допускается Импортирует иконку для представления текущего документа.
license гиперссылку гиперссылку Указывает, что главное содержимое текущего документа подпадает под лицензию авторских прав, описанную ссылочным документом.
next гиперссылку гиперссылку Указывает, что текущий документ является частью серии и что следующий документ серии является ссылочным документом.
nofollow не допускается аннотацию Указывает, что автор или издатель текущего документа не поддерживает текущий документ.
noreferrer не допускается аннотацию Требует, чтобы ПА не отправлял хедэр HTTP Referer (sic), если пользователь переходит по гиперссылке.
prefetch внешний ресурс внешний ресурс Специфицирует, что целевой ресурс должен быть принудительно кэширован.
prev гиперссылку гиперссылку Указывает, что текущий документ является частью серии и что предыдущий документ серии является ссылочным документом.
search гиперссылку гиперссылку Задаёт ссылку на ресурс, который может использоваться для поиска в текущем документе и связанных страницах.
stylesheet внешний ресурс не допускается Импортирует таблицу стилей.
tag не допускается гиперссылку Задаёт тэг (идентифицированный данным адресом), который применяется к текущему документу.

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

4.8.4.1 Тип ссылки "alternate"

Ключевое слово alternate можно использовать с элементами link, a и area.

Значение этого ключевого слова зависит от значений других атрибутов.

Если элемент является элементом link, а атрибут rel также содержит ключевое слово stylesheet

Ключевое слово alternate модифицирует значение ключевого слова stylesheet способом, описанным для этого ключевого слова. Ключевое слово alternate само не создаёт ссылку.

Если ключевое слово alternate используется с атрибутом type, имея значение application/rss+xml или application/atom+xml

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

Первый элемент link, a или area в документе (в порядке дерева) с ключевым словом alternate, используемым с атрибутом type со значением application/rss+xml или application/atom+xml должен рассматриваться как новостная лента по умолчанию для целей подачи автораспознавания.

Следующий элемент link задаёт новостную ленту для текущей страницы:

<link rel="alternate" type="application/atom+xml" href="data.xml">

Следующий код предлагает различные ленты новостей:

<p>You can access the planets database using Atom feeds:</p>
<ul>
 <li><a href="recently-visited-planets.xml" rel="alternate" type="application/atom+xml">Recently Visited Planets</a></li>
 <li><a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml">Known Bad Planets</a></li>
 <li><a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml">Unexplored Planets</a></li>
</ul>
Иначе

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

Природа ссылочного документа задаётся атрибутами hreflang и type.

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

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

Атрибуты hreflang и type могут комбинироваться, когда специфицированы с ключевым словом alternate.

Например, следующая ссылка является переводом на французский в формате PDF:

<link rel=alternate type=application/pdf hreflang=fr href=manual-fr>

Это соотношение является транзитивным — то есть, если документ ссылается на два других документа с типом ссылки "alternate", тогда, в дополнение к тому, что подразумевается, что эти документы являются альтернативными представлениями первого документа, подразумевается также, что эти два документа являются альтернативными представлениями друг друга.

Ключевое слово author может использоваться с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Для элементов a и area ключевое слово author указывает, что ссылочный документ предоставляет дополнительную информацию об авторе ближайшего элемента article – предка элемента, определяющего гиперссылку, если имеется, или, иначе, обо всей странице.

Для элементов a и area ключевое слово author указывает, что ссылочный документ предоставляет дополнительную информацию об авторе всей страницы.

 "Ссылочный документ/referenced document" может быть, и часто является, mailto: URL, задающим e-mail адрес автора. [MAILTO]

Синонимы: по историческим причинам ПАгенты должны также рассматривать элементы link, a и area, имеющие атрибут rev со значением "made", как имеющие ключевое слово author, специфицированное как ссылочное соотношение.

Ключевое слово bookmark может использоваться с элементами a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово bookmark задаёт permalink/постоянную ссылку на ближайший элемент предок article связанного элемента в запросе, или раздела с которым связывающий элемент теснее всего ассоциирован, если нет элементов-предков article.

Следующий код имеет три перманентные ссылки. ПА может определить, какую постоянную ссылку применить к какой части спецификации путём просмотра того, где постоянные ссылки заданы.

 ...
 <body>
  <h1>Example of permalinks</h1>
  <div id="a">
   <h2>First example</h2>
   <p><a href="a.html" rel="bookmark">This permalink applies to
   only the content from the first H2 to the second H2</a>. The DIV isn't
   exactly that section, but it roughly corresponds to it.</p>
  </div>
  <h2>Second example</h2>
  <article id="b">
   <p><a href="b.html" rel="bookmark">This permalink applies to
   the outer ARTICLE element</a> (which could be, e.g., a blog post).</p>
   <article id="c">
    <p><a href="c.html" rel="bookmark">This permalink applies to
    the inner ARTICLE element</a> (which could be, e.g., a blog comment).</p>
   </article>
  </article>
 </body>
 ...

Ключевое слово help может использоваться с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Для элементов a и area ключевое слово help указывает, что что ссылочный документ предоставляет дополнительную информацию для родителя элемента, определяющего гиперссылку, и его потомков.

В следующем примере элемент управления формы имеет ассоциированную контекстную помощь. ПА может использовать эту информацию, например, при отображении ссылочного документа, если пользователь нажмёт "Help" или клавишу "F1".

 <p><label> Topic: <input name=topic> <a href="help/topic.html" rel="help">(Help)</a></label></p>

Для элементов link ключевое слово help указывает, что что ссылочный документ предоставляет помощь для всей страницы.

Для элементов a и area в некоторых браузерах ключевое слово help заставляет ссылку использовать другой курсор.

4.8.4.5 Тип ссылки "icon"

Ключевое слово icon может использоваться с элементами link. Это ключевое слово создаёт ссылку на внешний ресурс.

Специфицированный ресурс это иконка, представляющая страницу на сайте, которая используется ПАгентом для представления страницы в интерфейсе пользователя.

Иконки могут быть звуковыми, визуальными, или иного рода. Если предоставляется несколько иконок, ПА должен выбрать самую подходящую, в соответствии с атрибутами type, media и sizes. Если есть несколько одинаково подходящих иконок, ПАгенты должны использовать последнюю, объявленную в порядке дерева на момент, когда ПА собрал список иконок. Если ПА пытается использовать иконку, но это иконка, при  ближайшем исследовании, определена как неподходящая (например, потому что имеет неподдерживаемый формат), тогда ПА должен попытаться использовать следующую наиболее подходящую иконку, как определено атрибутами.

 От ПАгентов не требуется обновлять иконки при изменении списка иконок, но это рекомендуется делать.

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

Атрибут sizes задаёт размер иконок для визуальных носителей. Его значение, если имеется, всего лишь справочное. ПАгенты могут использовать это значение для определения того, какую иконку (иконки) использовать, если доступны несколько иконок.

Если специфицирован, этот атрибут должен иметь значение – неупорядоченный набор уникальных, лексем, с разделением пробелами, которые являются ASCII-регистронезависимыми. Каждое значение должно быть либо ASCII-регистронезависимыми совпадением со строкой "any", либо значением, состоящим из двух правильных неотрицательных целых, не имеющих ведущего символа "0" (U+0030) и разделённых одиночным символом U+0078 LATIN SMALL LETTER X или U+0058 LATIN CAPITAL LETTER X.

Это ключевое слово представляет размеры иконки в сырых пикселах (в отличие от CSS-пикселов).

 Иконка шириной 50 CSS-пикселов предназначена для отображения с пикселной плотностью устройства в два пиксела устройства на CSS-пиксел (2x, 192dpi) и будет иметь ширину в 100 сырых пикселов. Эта возможность не поддерживает индикацию того, что другой ресурс используется для иконки малого разрешения как альтернативы большей иконки низкого разрешения (например, 50х50 2x vs 100х100 1x).

Для парсинга и обработки значения атрибута ПА должен сначала разделить значение атрибута по пробелам, а затем разобрать каждое результирующее ключевое слово для определения того, что оно представляет.

Ключевое слово any показывает, что ресурс содержит масштабируемую иконку, например, предоставленную SVG-изображением.

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

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

В отсутствие link с ключевым словом icon, для Documentов, полученных через HTTP или HTTPS, ПАгенты могут вместо этого попытаться извлечь и использовать иконку с абсолютным URL, полученным от разрешения URL "/favicon.ico" относительно адреса документа, как если бы страница объявила иконку с помощью ключевого слова icon.

Этот код показывает верхнюю часть приложения с несколькими иконками.

<!DOCTYPE HTML>
<html>
 <head>
  <title>lsForums — Inbox</title>
  <link rel=icon href=favicon.png sizes="16x16" type="image/png">
  <link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
  <link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
  <link rel=icon href=iphone.png sizes="57x57" type="image/png">
  <link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
  <link rel=stylesheet href=lsforums.css>
  <script src=lsforums.js></script>
  <meta name=application-name content="lsForums">
 </head>
 <body>
  ...

По историческим причинам ключевому слову icon может предшествовать ключевое слово "shortcut". Если "shortcut" имеется, оно должно идти непосредственно перед icon, и эти два ключевых слова должны быть разделены только одним символом U+0020 SPACE.

Ключевое слово license можно использовать с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово license указывает, что ссылочный документ предоставляет условия лицензии авторских прав, на основе которой предоставляется основное содержимое текущего документа.

Данная спецификация определяет главное содержимое документа и содержимое, которое не считается частью этого главного содержимого, через элемент main. Это различение следует сделать понятным для пользователя.

Посмотри на сайт обмена фотографиями. Страница этого сайта может описывать и показывать фотографии и может быть размечена так:

<!DOCTYPE HTML>
<html>
 <head>
  <title>Exampl Pictures: Kissat</title>
  <link rel="stylesheet" href="/style/default">
 </head>
 <body>
  <h1>Kissat</h1>
  <nav>
   <a href="../">Return to photo index</a>
  </nav>
  
  <main>
  <figure>
   <img src="/pix/39627052_fd8dcd98b5.jpg">
   <figcaption>Kissat</figcaption>
  </figure>
  <p>One of them has six toes!</p>
  <p><small>This photograph is <a rel="license" href="http://www.opensource.org/licenses/mit-license.php">MIT Licensed</a></small></p>
  </main>
  <footer>
   <a href="/">Home</a> | <a href="../">Photo index</a>
   <p><small>В© copyright 2009 Exampl Pictures. All Rights Reserved.</small></p>
  </footer>
 </body>
</html>

В данном случае license применяется только к фото (главному содержимому документа), а не ко всему документу. Особенно не к дизайну самой страницы, который покрывается правами, указанными внизу документа. Это следует сделать понятным из текста ссылки о лицензировании, а также с помощью стилизации (например, сделав ссылку на лицензию заметно позиционированной рядом с фотографией, а права на страницу – мелким текстом на футере, либо добавив окаймление элементу main.)

Синонимы: по историческим причинам ПАгенты должны также считать ключевое слово "copyright" подобным ключевому слову license.

Ключевое слово nofollow может использоваться с элементами a и area. Это ключевое слово не создаёт гиперссылку, но комментирует любые другие гиперссылки, созданные элементом (подразумеваемую гиперссылку, если ни одно другое ключевое слово не создаёт её).

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

Ключевое слово noreferrer может использоваться с элементами a и area. Это ключевое слово не создаёт гиперссылку, но комментирует любые другие гиперссылки, созданные элементом (подразумеваемую гиперссылку, если ни одно другое ключевое слово не создаёт её).

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

Если ПА переходит по ссылке, определённой элементом a или area, имеющим ключевое слова noreferrer, ПА должен не включать HTTP-хедэр Referer (sic) (или его эквивалент в других протоколах ) в запрос.

Это ключевое слово также заставляет атрибут opener оставаться null, если гиперссылка создаёт новый контекст браузинга.

Ключевое слово prefetch может использоваться с элементами link, a и area. Это ключевое слово создаёт ссылку на внешний ресурс.

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

Для ресурсов , задаваемых ключевым словом prefetch, нет типа по умолчанию.

Ключевое слово search может использоваться с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово search указывает, что ссылочный документ предоставляет интерфейс специально для поиска документа и связанных с ним ресурсов.

 OpenSearch описание документа можно использовать с элементами link и типом ссылки search, чтобы ПАгенты могли автоматически обнаруживать поисковые интерфейсы. [OPENSEARCH]

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

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

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

Тип по умолчанию для ресурсов, заданных ключевым словом stylesheet, это text/css.

Подходящий момент для получения ресурса,

Quirk: если документ поставлен в режим quirks mode, имеет тот же источник, что URL внешнего ресурса и Content-Type метаданные внешнего ресурса не поддерживается типом таблицы стилей, ПА должен вместо этого предположить, что это тип text/css.

Ключевое слово tag может использоваться с элементами a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово tag указывает, что tag, который представляет ссылочный документ, применяется к текущему документу.

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

Это документ о некоторых драгоценных камнях, поэтому он tagged адресом "http://en.wikipedia.org/wiki/Gemstone" для однозначной категоризации его как применимого к классу камней "jewel", а не, скажем, городам США, формату пакета Ruby или швейцарским локомотивам:

<!DOCTYPE HTML>
<html>
 <head>
  <title>My Precious</title>
 </head>
 <body>
  <header><h1>My precious</h1> <p>Summer 2012</p></header>
  <p>Recently I managed to dispose of a red gem that had been
  bothering me. I now have a much nicer blue sapphire.</p>
  <p>The red gem had been found in a bauxite stone while I was digging
  out the office level, but nobody was willing to haul it away. The
  same red gem stayed there for literally years.</p>
  <footer>
   Tags: <a rel=tag href="http://en.wikipedia.org/wiki/Gemstone">Gemstone</a>
  </footer>
 </body>
</html>

В этом документе есть две статьи. Ссылка "tag", однако, применяется ко всей странице (и будет делать так в любом другом месте, в том числе – внутри элементов article).

<!DOCTYPE HTML>
<html>
 <head>
  <title>Gem 4/4</title>
 </head>
 <body>
  <article>
   <h1>801: Steinbock</h1>
   <p>The number 801 Gem 4/4 electro-diesel has an ibex and was rebuilt in 2002.</p>
  </article>
  <article>
   <h1>802: Murmeltier</h1>
   <figure>
    <img src="http://upload.wikimedia.org/wikipedia/commons/b/b0/Trains_de_la_Bernina_en_hiver_2.jpg"
         alt="The 802 was red with pantographs and tall vents on the side.">
    <figcaption>The 802 in the 1980s, above Lago Bianco.</figcaption>
   </figure>
   <p>The number 802 Gem 4/4 electro-diesel has a marmot and was rebuilt in 2003.</p>
  </article>
  <p class="topic"><a rel=tag href="http://en.wikipedia.org/wiki/Rhaetian_Railway_Gem_4/4">Gem 4/4</a></p>
 </body>
</html>

Некоторые документы образуют часть последовательности документов.

Последовательность документов, это когда каждый документ может иметь previous sibling (предыдущего "брата") и next sibling (следующего "брата"). Документ без previous sibling это начало последовательности, а документ без next sibling – конец последовательности.

Документ может быть частью нескольких последовательностей.

Ключевое слово next может использоваться с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово next указывает, что документ является частью последовательности и что ссылка ведёт к документу, который является логически следующим документом последовательности.

Ключевое слово prev может использоваться с элементами link, a и area. Это ключевое слово создаёт гиперссылку.

Ключевое слово prev указывает, что документ является частью последовательности и что ссылка ведёт к документу, который является логически предшествующим документом последовательности.

Синонимы: по историческим причинам ПАгенты должны также рассматривать ключевое слово "previous" подобно ключевому слову prev.

Расширения для предопределённого набора типов ссылок могут быть зарегистрированы в microformats wiki existing-rel-values page. [MFREL]

Любой и в любое время может редактировать страницу microformats wiki existing-rel-values и добавлять новые типы. Типы расширений должны специфицироваться со следующей информацией :

Keyword

Определяемое значение. Не должно быть походе на другое уже определённое значение (например, различаясь только регистром символов).

Если значение содержит символ ":" (U+003A), оно должно быть абсолютным URL.

Effect on... link

Одно из следующих:

Not allowed
Ключевое слово не должно быть специфицировано в элементе link.
Hyperlink
Ключевое слово может быть специфицировано в элементе link; оно создаёт гиперссылку.
External Resource
Ключевое слово может быть специфицировано в элементе link; оно создаёт ссылку на внешний ресурс.
Effect on... a and area

Одно из следующих:

Not allowed
Ключевое слово не должно быть специфицировано в элементах a и area.
Hyperlink
Ключевое слово может быть специфицировано в элементах a и area; оно создаёт hyperlink.
External Resource
Ключевое слово может быть специфицировано в элементах a и area; оно создаёт ссылку на внешний ресурс.
Hyperlink Annotation
Ключевое слово может быть специфицировано в элементах a и area; оно комментирует другие гиперссылки, созданные элементом.
Brief description

Краткое ненормативное описание значения ключевого слова.

Specification

Ссылка на более детальное описание семантики ключевого слова и требований. Это может быть другая страница в Wiki или ссылка на внешнюю страницу.

Synonyms

Список других значений ключевого слова, имеющих точно такие же требования процессинга. Авторам не следует использовать значения, определённые как синонимы, они нужны только для поддержки ПАгентами унаследованного содержимого. Любой может удалить синонимы, которые практически не используются; только имена, которые необходимо обработать как синонимы, для совместимости с устаревшим содержимым, регистрируются этим способом.

Status

Одно из:

Proposed
Ключевое слово не получило широкого рецензирования и подтверждения. Кто-то предложил его и использует, или скоро будет использовать.
Ratified
Ключевое слово получило широкое рецензирование и подтверждение. Оно имеет спецификацию, которая однозначно определяет, как обрабатывать страницы, использующие это ключевое слово, в том числе – при некорректном его использовании.
Discontinued
Ключевое слово получило широкое рецензирование и считается желательным. Существующие страницы используют это ключевое слово, но на новых страницах его использования следует избегать. Пункты "brief description" и "specification" дадут информацию о том, что авторам следует использовать взамен, если есть, что.

Если ключевое слово считается излишним с имеющимися значениями, его следует удалить и внести в список синонимов, для существующего значения.

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

Если ключевое слово добавлено со статусом "proposed" и считается излишним с имеющимися значениями, его следует удалить и внести в список синонимов, для существующего значения. Если ключевое слово добавлено со статусом "proposed" и считается вредным, то следует изменить его статус на "discontinued".

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

Проверщики соответствия могут использовать информацию на странице microformats wiki existing-rel-values для определения того, допустимо значение или нет: значения, определённые в данной спецификации или отмеченные как "proposed" или "ratified", должны приниматься при использовании в элементах, для которых они применимы, как указано в поле "Effect on...", в то время как о значениях, отмеченных как "discontinued", или значених, не содержащих символ U+003A COLON, но не перечисленных ни в этой спецификации, ни на упомянутой странице, должно сообщаться как о недействительных. Остальные значения должны приниматься как правильные\valid, если они являются абсолютными URL, содержащими только символы US-ASCII, а иначе должны быть отброшены. Проверщики соответствия могут кэшировать эту информацию (например, по соображениям производительности или для исключения использования ненадёжных сетевых подключений).

 Даже URL-значащие типы ссылок сравниваются ASCII-регистронезависимо. Валидаторы могут предупредить о символах от U+0041 (LATIN CAPITAL LETTER A) до U+005A (LATIN CAPITAL LETTER Z) (включительно) в форме pre-case-folded в типах ссылок, содержащих двоеточие.

Когда автор использует новый тип, не определённый данной спецификацией или Wiki-страницей, проверщикам соответствия следует предложить добавление этого значения в Wiki, с указанными выше деталями, в статусе "proposed".

Типы, определённые как расширения в microformats wiki existing-rel-values page со статусом "proposed" или "ratified", могут использоваться с атрибутом rel в элементах link, a и area в соответствии с полем "Effect on...". [MFREL]