IE11: Compatibility List vs. X-UA-Compatible

от автора

Вчера я опубликовал топик, в котором описал некоторые удивительные решения, которые приняла компания Майкрософт при выпуске новых версий своего так сказать браузера Internet Explorer. Если вкратце, это:

  • введение режимов совместимости со всеми ранее выпущенными версиями браузера вплоть до 5.5;
  • решение эмулировать эту совместимость путём тщательного портирирования старых багов;
  • отказ от указания имени браузера в юзер-агенте на фоне заявлений о том, что детектировать IE11 по юзер-агенту не надо;
  • слом обратной совместистимости между последним Developer Preview и RTM релизом;
  • разное поведение, вплоть до падения в некоторых ситуациях, одного и того же браузера под разными версиями операционной системы;
  • поддержание глобального списка совместимости, в который попадают те сайты, которые, по мнению Майкрософт, должны показываться в одном из режимов совместимости IE;
  • формирование этого списка на основе статистики по кликам пользователей preview-версий браузера в кнопку «Compatibility View»;
  • приоритет этого списка над заданной вебмастером метой X-UA-Compatible в RTM-сборке IE11.

Появление этого топика вызвало вал добродушных комментариев, начиная от «автор истеричка» (как будто какой-то из изложенных фактов становится от этого менее весомым) до «Столько бреда, я давно не читал. Смысла даже нет проходиться по всей статье и указывать на ошибки автора». На просьбу таки указать ошибки в изложении было почему-то только отмечено, что последний из приведённых пунктов — а именно, приоритет списка совместимости над X-UA-Compatible — не соответствует действительности (странно, почему же тогда «ошибки» во множественном числе, уважаемый SowingSadness?). Далее в треде от меня потребовали предоставить доказательства этого пункта, заявив, что я либо ошибся, либо просто его придумал.

Подопытная сборка: Windows RT 8.1 на планшете Microsoft Surface. Версию и сборку IE11 см. на скрине в начале поста.

HTML-код, на котором проверялась работа мета-тэга:

<!DOCTYPE html> <html>     <head>         <title>Compat View Test</title>         <meta http-equiv="X-UA-Compatible" content="IE=edge" />     </head>     <body>         <h1>Hello, Habr!</h1>     </body> </html> 

Открываем эту страницу с дев-сервера, который живёт на домене из списка совместимости Microsoft (имя домена я не могу привести по понятным причинам):

Меняем .ru на .net

Проверяем, работает ли мета. Меням content на «IE=EmulateIE7»:

На .ru при этом ничегошеньки не меняется, IE11 остаётся в режиме IE10.

Для чистоты эксперимента снимаем галочку «Use Microsoft compatibility lists»:


(обратите внимание, настройка показа интранета в Compat View отключена для чистоты эксперимента, хотя по факту она ничего не меняет)

Вуаля, .ru теперь управляется метой:

Передаю привет и искреннее восхищение разработчикам из Редмонда, а также местным экспертам с мировым именем.

ссылка на оригинал статьи http://habrahabr.ru/post/201358/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *