Якорная метка внутри головы?

Я хочу, чтобы мой сайт получил право на Google+ Direct Connect.

Итак, после небольшого поиска я нашел эту страницу поддержки Google, которая с тех пор была отредактирована.
Просмотрите страницу поддержки Google, предоставляющую эти инструкции через WayBack Machine:

Вы можете напрямую связать свой сайт, вставив небольшой фрагмент код на вашем веб-сайте, а затем листинг этого веб-сайта как ваш Google+ страницы в разделе "Профиль" профиля. Например, если первичная ссылка для ваших страниц в Google+ установлена ​​на www.pagewebsite.com, вы можете создать ссылку bidrectional, поместив следующий фрагмент кода в тег <head> сайтов HTML:

<a href="#" onclick="location.href='https://plus.google.com/{+PageId}'; return false;" rel="publisher" />

Что дает? Якорная метка внутри головы?

Я думал, что в голове разрешены только теги title/meta/link.

Является ли законным размещать этот выше фрагмент в заголовке?

Ответ 1

Я думаю, что в документации Google есть ошибка, и это должно быть <link> -tag, например:

<link href="https://plus.google.com/{+PageId}" rel="publisher" />

Вы можете проверить его на https://developers.google.com/structured-data/testing-tool/, если он работает. Включите <link> -tag на свой сайт и узнайте, что Google обнаруживает с помощью этого инструмента. Там раздел "Издатель", где вы можете увидеть, обнаружит ли Google правильную информацию.

Я использую <link> на своих сайтах, и Google обнаруживает правильные значения.

Ответ 2

Элемент a внутри head, конечно, недействителен в соответствии с любой спецификацией HTML. Я не знаю, почему Google говорит вам об этом, но, по-видимому, их программное обеспечение действительно ищет такие теги.

Что происходит на практике в браузерах, так это то, что тег a неявно закрывает элемент head (это можно увидеть, если вы посмотрите на дерево документа в Инструментах разработчика в браузере). Это не так плохо, как кажется, так как остальные элементы, предназначенные для head, все равно будут обрабатываться нормально. Например, даже элемент title работает при размещении внутри body. Чтобы сказать правду, разделение документа на head и body является просто формальностью.

Тег <a href="https://plus.google.com/{+PageId}" rel="publisher" /> будет приниматься только как начальный тэг, что может вызвать озорные сюрпризы, так как начало документа будет находиться внутри ссылки (которая может быть расширена до конца документа!). Только если страница была подана с типом содержимого XML, тег будет считаться "самозакрывающимся". Поэтому, если вы были вынуждены использовать такой элемент, по крайней мере, напишите его с помощью реального концевого тега;

<a href="https://plus.google.com/{+PageId}" rel="publisher"></a>

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

Ответ 3

Использование тега ссылки - правильный (и действительный!) способ войти в заголовок:

<link href="#" onclick="location.href='https://plus.google.com/{+PageId}'; return false;" rel="publisher" />

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

Мы просто испытали это, на самом деле. Кажется, начиная с iOS 8.x, мобильный Safari увидит этот якорный тэг и переместит его (вместе с кодом ниже!) В тело. Это сломало умный баннер, который у нас был на месте.

Мы перешли на использование тега ссылки и подтвердили, что Google все еще обнаруживает правильные значения.