В W3C в HTML микроданных, it says (и это currently the same в WHATWG в HTML Living Standard):Разыменование микроданных URL-типа пункт: "не должны" против "не должен"
За исключением, если иное указанные в этой спецификации, URL-адреса, указанные как типы элементов, не должны автоматически разыменовываться.
Примечание: Спецификация может определять, что его тип элемента может быть заблокирован, чтобы предоставить пользователю справочную информацию, например. Фактически, авторы лексики рекомендуется предоставлять полезную информацию по данному URL-адресу.
И это непосредственно следует:
типов элементов являются непрозрачными идентификаторами, и пользовательские агенты не должны разыменовать неизвестные типы элементов, или иначе деконструкции их для того, чтобы определить, как обрабатывать элементы, которые используют их.
Я смущен об этом. В первом абзаце говорится, что URL-адреса в атрибуте itemtype
«не должны автоматически разыменовываться» (должно быть, а не должно быть, поэтому в соответствии с настоящим абзацем пользовательским агентам разрешено разыменовывать). Но в последнем абзаце говорится, что пользовательские агенты «не должны разыменовывать неизвестные типы элементов».
Является ли это противоречием или что-то другое?
Может быть, это только известно против неизвестно (хотя в первом абзаце, не говоря уже о «известном» на всех, поэтому я предполагаю, что это относится ко всем словарям, будь то известные или нет) ? Но почему это должно иметь значение, если пользовательские агенты знают словарь? И что именно означает «знать» словарный запас в первую очередь?
Или, может быть, «чтобы определить, как обрабатывать элементы, которые ими пользуются», суть проблемы здесь? Таким образом, пользовательским агентам разрешено разыгрывать по какой-либо причине, кроме как если они пытаются определить, как обрабатывать элементы?