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


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



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



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



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



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


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

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



    Внимательно читаем майкрософтовские документ:

    Note that the X-UA-Compatible header has greater precedence than Compatibility View.


    Здесь сказано только про http-заголовок X-UA-Compatible, про meta-тэг не слово.

    Передаю привет и искреннее восхищение разработчикам из Редмонда, а также местным экспертам с мировым именем.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 105

      +17
      имя домена я не могу привести по понятным причинам
      Так можно было ж взять любой из списка и прописать в /etc/hosts, делов-то.
        –4
        В /etc/hosts на Windows RT?
          +5
          А он в Windows 8 из %WINDIR%\system32\drivers\etc куда-то пропал?
            –1
            Почему-то казалось, что RT это как Phone, только для планшетов.
            То есть, вот там прям так можно взять и отредактировать системный файл?
        –109
        Автор — истеричка :) Просто заточите сайт под еще одну версию браузера, а не юзайте какие-то костыльные режимы совместимости. Они сделаны для ископаемых сайтов, и, кстати, более-менее нормально работают, в отличии от других браузеров, которые старые сайты просто не покажут нормально.
          +95
          Автор — разработчик API с 300К подключенными доменами и немножко занимается решением кросс-архитектурных вопросов в W3C. Я обязательно приму ваш совет к сведению, спасибо.
            –3
            Уважаемый Автор. Не подумайте, пожалуйста, что я хочу Вас обидеть. Объясните. пожалуйста, почему компания Яндекс, которая, по моему скромному мнению, обязана (уже только из-за размеров аудитории) являться двигателем индустрии web-разработки, так держится за небольшой процент пользователей с устаревшими браузерами и пытается обеспечить обратную совместимость своих продуктов. Не лучше ли было бы принуждать пользователей обновлять браузер отказывая им в обслуживании?
            Спасибо.
              +2
              Што-што, простите?
              Это в какой вселенной «принуждать клиентов» + «отказывать клиентам» + «не поддерживать обратную совместимость» == «являться двигателем индустрии»? 0_0
                +2
                Вопрос к автору. Вы не ответили на вопрос, а задали два своих.
                Я рассматриваю такой вариант развития событий в этой (надеюсь, нашей общей) вселенной. На практике мне приходилось отказывать клиентам (это мой выбор). По моему опыту, все участники (и я, и клиент) от этого выиграли. Поэтому ничего страшного в этом не вижу.
                Спасибо.
                  –4
                  Так это ваш опыт, примененный к конкретному проекту, а у Яндекса, думаю, опыта побольше относительно своих проектов. И там решили, что лучше поддержать, чем поиздеваться над домохозяйкой «замените свой браузер»
                    +7
                    Так вроде бы клиенты API это совсем не домохозяйки, а как минимум разработчики сайтов, которые предположительно могут осмыслить представленные ограничения. Для сравнения вот ограничения конкурента:

                    Which web browsers does the Google Maps JS API support?
                    The Google Maps JavaScript API supports the following web browsers:

                    Google Maps JavaScript API v3:

                    For desktop:
                    Internet Explorer 8–10 inclusive (Windows)
                    The current and previous version of Firefox (Windows, Mac OS X, Linux)
                    The current and previous version of Chrome (Windows, Mac OS X, Linux)
                    The current and previous version of Safari (Mac OS X)

                    developers.google.com/maps/faq
                      0
                      Кстати если уж зашла речь о стратегии гугла: «мы не поддерживаем древность, так что если вдруг ее несколько перекосит, то не жалуйтесь, а так работать то будет», то можно обсудить и другую стратегию:
                      «Для всех древних цивилизаций и некоторых других агентов используем другой дизайн. В котором максимально урезано оформление, чтобы было меньше точек отказа».
                      Т.е. идея в том, чтобы не просто отпускать на самотек — если что-то поломается, то и фиг с ним, а знать что конкретно поломается.
                +1
                В масштабах Яндекса даже 1% пользователей будет ОЧЕНЬ большим количеством людей.
                А принуждать кого-то к чему-либо это не самая хорошая практика, которая вряд ли хорошо скажется на отношении к компании.
                  0
                  Думаю, если бы Яндекс отказал 1% пользователей IE7. И хотя бы половина из них переехала на «нормальный» браузер. Все бы выиграли (в первую очередь автор и его компания).
                    +11
                    В масштабах Гугла 1% будет ещё большим количеством людей. Что не мешает им отказываться от поддержки устаревших браузеров. Что касается принуждения и «хорошего отношения к компании», то вспомините ещё и про Apple, который несколько раз в год меняет «правила игры», однако пользователи их почему-то анафеме не преносят (за ооочень редким исключением), а, наоборот, несут свои денежки из года в год.
                      0
                      Со стороны гугла это выглядит скорее как давление на Майкрософт через создание проблем их (майкрософтовским) клиентам
                    +25
                    Я не могу отвечать за всю компанию Яндекс.

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

                    Помимо прочего, решение проблемы старых браузеров путём отказа в обслуживании должно учитывать кейсы использования сервиса — насколько часто пользователю может быть критично необходим сервис в ситуации, когда он не может обновить/сменить браузер. Мне представляется, что карты — как раз один из таких критичных сервисов.
                      –5
                      Спасибо. Ваша позиция понятна. Но не совсем понятна столь эмоциональная реакция на проблемы с IE. Раз уж взяли на себя такой труд, то надо делать. Ещё раз спасибо.
                        +61
                        Я не очень понимаю, почему, раз я взялся за такой труд, я не могу критиковать разработчиков IE. И уж тем более — почему вдруг я не могу проявлять какие-то эмоции.

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

                        И да, я очень расстроен по этому поводу, вот просто аж кушать не могу.
                          –4
                          Я не очень понимаю, почему, раз я взялся за такой труд, я не могу критиковать разработчиков IE.

                          Это не решает Ваших проблем, только и всего.
                            0
                            А почему Вы так считаете?
                              +3
                              Действительно, если недовольство не может помочь решению проблемы, надо сидеть и молчать, а не собираться вместе и искать пути решения…
                                –5
                                Автор не собирается ни с кем и не ищет пути решения. Он рассказывает нам, как ему тяжело. Мы в курсе! Как говорят на лепре, нам похуй.
                              +15
                              Я не понимаю, чем нужно думать, чтобы принимать решения подобно перечисленным выше.

                              А теперь посмотрим не с точки зрения разработчика кросс-браузерной библиотеки, а со стороны разработчика браузера. Берём и отменяем список совместимости — что происходит? Сотни сайтов, которые в нём перечислены, начинают глючить. Юзеры будут вопить: «Я обновил ось — сайты перестали работать. Никто не обновляйтесь, новую версию не покупайте, это полная хрень». Оно Майкрософту надо?

                              Или посмотрим с точки зрения разработчиков сайтов. Юзеры обновились, сайты сломались. Оно надо?

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

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

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

                              Да что ж вы всех по себе меряете? Обычным веб-разработчкам, которые не ориентируются на браузеры, древние как говно мамонта, которые пишут конкретные веб-сайты, а не кросс-браузерные библиотеки, которые не используют все новомодные фишки на голом API, который даже из Working Draft не выбрался — им все ваши проблемы по барабану. Поставил <!DOCTYPE html> — и зашибись.
                            +1
                            Тем более, непосредственные «пользователи» API карт — такие же поставщики сервисов, и вся вина, гнев и подрыв отношения направлены на них, если у их пользователей глючат карты. Получается эдакая ответственность за чужой сервис перед чужими клиентами, нельзя просто так взять и отказать.
                              0
                              Вопрос к вас. Почему вбивая координаты выданные здесь api.yandex.ru/maps/tools/getlonglat/ в гугле я получаю Иран? Почему у вас сначала идет долгота, а потом широта, а не наоборот?
                                –1
                                А почему должна идти сначала широта, а потом долгота?
                                  +5
                                  Даже забудем про гугл. Уточню даже, если здесь — api.yandex.ru/maps/tools/getlonglat/ копирую значения широты и долготы (г.Тверь). в Яндекс.Карты и он мне показывает Иран.
                                    –3
                                    Вы не различаете Карты и API Карт?
                                    И вы не ответили на вопрос.
                                      +5
                                      Различаю, но это API сервиса Яндекс.Карт, а не чего-то другого. Соглашусь что единого стандарта нет и писать можно по-разному, но почему его для себя не определить эти стандарты в рамках хотя бы Яндекса? Насколько я понял это связано с тем, что в Яндекс-картах вы поменяли порядок написания широты и долготы, а в API не стали этого по каким-то неведомым причинам делать.
                                        +1
                                        Да, в рамках одного проекта логично придерживаться одного порядка. Но ошибки делают все.
                                        Но самое обидное, что исправить уже почти нереально, ибо все ссылки, все сайты использующие API в случае смены порядка могут неверно показывать объекты.
                                          0
                                          Отстранено говоря… было бы желание — можно банально ввести новый метод, с новым порядком операндов.
                                          Меня в этом плане всегда огорчало php, методы поиска и замены строк там например принимают операнды в разном порядке.
                                          Конкретно метод getlonglat вроде как называется верно, но наличие варианта getlatlong или аналогичного не было бы лишним.
                                      +19
                                      но он же… он же называется getlonglat, чего вы еще от него ждете?
                                      0
                                      Потому-что сначала X, потом Y
                                        +1
                                        X — долгота, Y — широта. Как раз порядок latlong — это YX.
                                          +8
                                          Я всегда их путаю. И ведь проверил же в википедии перед тем как комментировать и всё равно ступил
                                        0
                                        Круче, что в каком-то одном месте они возвращаются (или возвращались, последний раз работал с API более года назад) в обратном порядке. Было… забавно.
                                          +6
                                          Эм… традиция.
                                          ХХ с.ш. YY в.д.
                                            +2
                                            Потому, что это исторически сложившаяся общепринятая практика, возможно?
                                              +6
                                              Стандарт ISO 6709.
                                              +4
                                              Этот вопрос я задавал года 2 назад. Ответили, потому что нам так удобно. Хотя в мире негласно (а может и главно, но я не нашел) принято сначала говорить широту, а потом долготу. И это исторический факт… Но Яндексу закон не писан.
                                                +2
                                                в мире принято сначала говорить широту, а потом долготу.
                                                работал с цифровыми картами, там тоже идет ввод сперва широта latitude, потом долгота longitude.
                                                  +12
                                                  Читал книги про пиратов. Там всегда широта шла перед долготой).
                                                  +1
                                                  В большинстве (не скажу за все) стандартов OGC — вы, вероятно, слышали про KML или WKT — всегда долгота, затем широта (x,y). И в GeoJSON с TopoJSON. К вопросу о гласности и исторических фактах.
                                                    +1
                                                    У OGC есть спецтальный документ по этому поводу. Там написано что необходимо явно указывать порядок и придерживаться его. Однако в пункте 5 для «новых систем координат» рекомендуется порядок Lon-Lat.

                                                    Но не нужно забывать, что координаты использовались сотни лет до появления компьютеров. И там есть свои традиции. И есть стандарты (ISO 6709), которые явно требуют порядка Lat-Lon
                                                      0
                                                      Да, и из всех форматов этому стандарту ISO соответствует только GML (который тоже ISO) и кучка полузабытых форматов на его основе. Кто сейчас серьёзно использует GML в веб-разработке (которую мы обсуждаем)? В специальном документе ничего конкретного не предлагается, только решение по упорядочиванию бардака, внесённого ISO 6709.
                                                        +1
                                                        Я считаю что путаницу внесли программисты.

                                                        Миллионы людей сотни лет пользовались картами, всегда писали Широта-долгота, и никто не путался. А потом пришли программисты, и сказали: нам традиции не указ, мы будеи делать по-своему. И тут началась путаница, и потребовались спец документы.
                                                          +1
                                                          Это очень поверхностное описание. Советую эту статью 2009 года, где рассказывается, почему моряки издавна используют порядок «широта, долгота», почему в компьютерной обработке понадобились (x,y) (подсказка: x,y,z,a,b) и как получилось, что OGC для системы координат WGS-84 поменяла порядок осей. Виноваты оказались совсем не программисты, и путаница немного мнимая, поскольку среди тысяч систем координат достаточно тех, что требуют обоих порядков.

                                                          Возвращаясь к исходному комментарию, вопрос «Почему функция getlonglat возвращает сначала долготу, а потом широту?» выглядит странным (ответ: по определению, в соответствии с общепринятой практикой описывать порядок координат). Кто виноват, выяснять поздно, но нужно всегда явно определять порядок координат. Что апи яндекса, судя по всему, делает, поэтому претензий к ним нет.
                                                0
                                                Компании Яндекс стоит провести исследование. Благо вся информация у ней уже есть.
                                                1. Какой процент пользователей устаревших браузеров имеют yandex аккаунт
                                                2. Какой процент пользователей устаревших браузеров совершают осмысленные действия (может это роботы). Если брать карты, то там адреса ищут, метки ставят и т.д.
                                                3. Какой процент пользователей устаревших браузеров кликает на рекламу

                                                и дальше уже решать. И в довесок, можно же один раз спросить пользователя, почему он не может обновить свой браузер, с заранее подготовленными ответами и небольшим полем для ответа. Сразу будет ясно — чего стоит эта аудитория.
                                                  +1
                                                  Возможно яндекс считает, что пользователи даже не кликающие на рекламу, но сидящие на старых браузера — всё равно стоят поддержки. И скорее всего правильно делает.
                                                  Потому что престиж.
                                                  Потому что я сижу может и кликаю на рекламу в новом браузере.
                                                  Но срочно понадобилось выйти с телефона/старого браузера (в гостях и т.п.), и ничего не сработало — всё, негативное мнение о яндексе. У конкурента карты сработали — конкурент молодец.
                                                  Так что в поддержке старых браузеров таки есть свои резоны…
                                                    +2
                                                    начнём с того, что конкурент уже и 9 версию не поддерживает. А если престиж, то надо поддерживать и может другим рассказать как всё это победить. Иначе, как уже пометили, выглядит это как нытьё. Почти всем нам приходится идти на что-то для клиента, на то он и бизнес. Клиент всегда прав. Если каждый хотя бы по одной истории расскажет о странных желаниях клиентов, тогда хабр будет жалобной книгой на долгие годы вперёд.
                                                  0
                                                  Как раз таки пользователи и должны решить эту проблему, перейдя на нормальный браузер, разве нет?
                                                    +4
                                                    Яндекс.Карты и проблемы пользователя? Спасибо, посмеялся.
                                                    Регулярно, в течении 3х, наверное лет, проверяю один и тот же маршрут, отправляю в техподдержку карт отчёт об ошибке в дорожном графе(ну нет там проезжей дороги, НЕТ). Регулярно получаю благодарность от команды техподдержки. Но карты и навигатор с упорством, достойном лучшего применения, продолжают строить маршрут по грунтовке через поле.
                                                    У меня все, спасибо.
                                                    PS: Сегодня с середины дня все яндексосайты колбасит не по-детски. Не иначе месть мелкомягких.
                                                      +4
                                                      Знаете, почему я долгое время предпочитал не раскрывать свой род занятий на Хабре?
                                                      А вот потому, что прекрасно знаю, что, стоит тебе назваться представителем какой-то компании, как к тебе в топик набегает вагон неравнодушных с претензиями, подобно г-ну LumberJack.

                                                      Ведь г-ну LumberJack совершенно всё равно, что я чёрным по белому написал, что не могу отвечать за весь Яндекс, а только за команду API Карт — которая совершенно никакого отношения к производству картографического контента не имеет.
                                                      Я мог бы также рассказать г-ну LumberJack, что исправить карту — это далеко не так просто, как ему кажется, особенно учитывая, что многие карты принадлежат сторонним поставщикам и просто так внести в них изменения нельзя. Но, я полагаю, г-ну LumberJack это попросту неинтересно.

                                                      Могу только пожелать г-ну LumberJack побольше таких же чутких и внимательных пользователей, как и он сам.
                                                        –3
                                                        Ох тыж сладенький мой. Обиделся? Набежали, понимаешь…. В «блокноте» тексты набирайте, туда не набегут.
                                                          –1
                                                          Сдаётся мне, что дата рождения в вашем профиле указана с ошибкой лет этак в 30-35.
                                                    +2
                                                    > Не лучше ли было бы принуждать пользователей обновлять браузер отказывая им в обслуживании?

                                                    Позвольте встрять в ваш диалог.
                                                    Нет, не лучше. Это «темная сторона силы», встав на путь которой, ты уже не сможешь с него сойти.
                                                    Суть в том, что совместимость браузера — это только одна из очень многих похожих друг на друга проблем.
                                                    Где-то на хабре уже был комментарий на эту тему, я попробую пересказать его по памяти своими словами:

                                                    Нет такого понятия, как типичный пользователь. У 10% окно браузера развернуто на половину экрана, у 15% установлены какие-то левые тулбары и плагины, у 3% сломана левая кнопка мыши, а 7% лень за мышью тянуться и они предпочитают клавиатурные шорткаты, у 4% Эксплорер старой версии, а у 12% тип браузер неизвестен. Так что если вы отсечете всех «нестандартных» пользователей — то останетесь с 10% от первоначальной аудитории.

                                                    Нельзя вынуждать пользователя просматривать ваш сайт в другом броузере, или в полноэкранном режиме, или с установленным плагином, или на экране больше WxH и так далее…
                                                      0
                                                      Разумно. Но тогда какой смысл возмущаться «Эксплорером старой версии» и молчать про «установлены какие-то левые тулбары и плагины». Это ягоды одного поля.
                                                        0
                                                        Напомню — это я по памяти чужую цитату воспроизводил.
                                                        Она иллюстрирует подход к решению проблем (не обязательно в области IT!).
                                                        Один вариант — отказаться от поддержки «миноритариев», но оставшихся опять можно будет разделить на «большинство» и «меньшинство»… И отказываться от поддержки меньшинств можно до бесконечности.
                                                        Второй вариант — по возможности выпускать универальный продукт, который охватывает всех. Но это тяжелее, можно и всплакнуть в жилетку над проблемами…
                                                        Какую сторону силы выбрать — решает для себя каждый сам.
                                                          0
                                                          Нельзя решитьсразу все проблемы. Давайте рассуждать в контексте.
                                                          Всплакнуть можно… у мамы. Но не на Хабре.
                                                +4
                                                Кстати, а в чём принципиальная проблема добавить HTTP Header? Всё равно всеми остальными браузерами кроме IE он будет игнорироваться.
                                                  +14
                                                  Могу вас обрадовать — вы особенные.
                                                  IE11 так реагирует только на yadnex.ru
                                                  ya.ru, yandex.by и прочие из списка работают корректно.

                                                  Либо для IE11 используется особенный cvlist, где есть список особенных доменов, в которых плевать на
                                                  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
                                                  

                                                  по каким либо причинам.

                                                  Однако вы истерично объявили о баге глобально не выяснив причин.
                                                    +2
                                                    Из вашего комментария я так понимаю, что вам удалось его воспроизвести?
                                                      +1
                                                      Да, удалось. Этот баг воспроизводится исключительно на домене yandex.ru.

                                                      Так же я прогнал ещё с два десятка доменов находящихся с вами в одном списке, и ни один не ведет себя так же, включая ваши же ya.ru и yandex.by

                                                      Однако, это не отменят того факта, что ваши заявления о «X-UA-Compatible» не соответствуют истине.
                                                      О причине вашей «уникальности» вам смогут рассказать только в MS
                                                        +7
                                                        Так же я прогнал ещё с два десятка доменов находящихся с вами в одном списке, и ни один не ведет себя так же, включая ваши же ya.ru и yandex.by

                                                        Это не мешает спонтанно ( = без вмешательства и желания разработчика) другим доменам повторить эту ситуацию. Ведь если исключение существует, то рано или поздно появится еще одно, а может уже и есть, но мы об этом не знаем.
                                                        Пусть уж лучше было бы одно поведение — всегда игнорировать X-UA-Compatible в IE, а так любой веб разработчик в любой момент времени может получить такой «подарок».
                                                          0
                                                          блин, ниже же показал какой флаг стоит у их домена
                                                          +5
                                                          Т.е. дело еще хуже — есть еще один, особо секретный, «Compatibility List-2» cо своими «правилами отображения»?
                                                            0
                                                            я же прям комментарием ниже всё описал
                                                          +15
                                                          iecvlist.microsoft.com/IE11/1375395130872/iecompatviewlist.xml

                                                          Там синеголубосалатовочерным по серому:
                                                          <domain docMode="EmulateIE10" versionVector="10" uaString="10" featureSwitch="overrideXUACompatible:false">yandex.ru</domain>
                                                          
                                                            +13
                                                            То есть, получается, Compatibility List [если домен помечен как featureSwitch=«overrideXUACompatible:false»] всё-таки приоритетнее мета-тэга?
                                                              +1
                                                              Вот вам и ответ.
                                                                +18
                                                                featureSwitch=«overrideXUACompatible:false»

                                                                так ведь это НЕ ОВВЕРАЙДИТЬ XUACompatible… и работает этот флаг наоборот написанному? и не документирован, а выставлен для некоторых доменов, в т.ч. гуглу и яндексу? Действительно, автор истеричка и никакой проблемы нет.. =)
                                                                  0
                                                                  так ведь это НЕ ОВВЕРАЙДИТЬ XUACompatible… и работает этот флаг наоборот написанному?

                                                                  Не обязательно, override скорее относится к описанию самой фичи — X-UA-Compatible оверрайдит настройку совместимости браузера.
                                                                  И ставя false мы этот оверрайд отключаем.
                                                                  То есть «override» тут как прилагательное — «оверрайдный» XUACompatible хэдер.
                                                                    0
                                                                    тогда должно быть overriding а не override
                                                                    +3
                                                                    Проблема, конечно, есть, только вот она не в браузере, а в наличии данной строки в списке совместимости. И решать её, соответственно, надо путем написания людям, которые мэйнтейнят этот список, чтобы убрать её оттуда.
                                                              +11
                                                              По поводу приведенной разметки страницы
                                                              <!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>
                                                              

                                                              могу заметить следующее. Мета тэг X-UA-Compatible должен идти раньше других тэгов, иначе в большинстве случаев IE его просто игнорирует.

                                                              Таким образом код должен выглядеть так:
                                                              ....
                                                                  <head>
                                                                      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
                                                                      <title>Compat View Test</title>
                                                                  </head>
                                                              ....
                                                              

                                                              Вот что было в одной из веток MSDN'овского форума
                                                              The x-ua-compatible meta tag must come before all other elements that aren't meta or title.

                                                              И о этой проблеме я писал в своем комментарии к предыдущему посту.
                                                                +5
                                                                The x-ua-compatible meta tag must come before all other elements that aren't meta or title

                                                                А у автора как раз и используется title тег перед метой.
                                                                  +9
                                                                  Это ни на что не влияет, я пробовал и так, и так.
                                                                    +3
                                                                    Отредактировал пост, дабы не смущать прочих экспертов.
                                                                  +8
                                                                  Неделя IE11 на Хабре.
                                                                    +8
                                                                    Хитрый план Майкрософт)
                                                                      +2
                                                                      Популяция веб-разработчиков подверглась геноциду?
                                                                      +6
                                                                      Автор, доносится ли Ваша позиция до более весомой аудитории — англоязычных разработчиков, до того же комитета W3C? Интересно было бы почитать их комментарии, потому что у нас много комментаторов просто не понимает широты поставленных вопросов, судят c позиций разработчика сайтов, а не сервисов.
                                                                        +19
                                                                        К вопросу использования IE.
                                                                        Довелось мне сегодня забрести на сайт личного кабинета mtt.ru. А там прекрасный алерт:

                                                                        image
                                                                          +3
                                                                          А 11 IE, видимо, даже у них не будет поддерживаться, потому что «не надо его определять по юзерагенту» =)
                                                                          +2
                                                                          Автор, скажите, а зачем вы X-UA-Compatible отдаете в метатеге, а не в хедере? Микрософт же сами, когда анонсировали X-UA-Compatible, заявляли, что хедер — предпочтительнее, а метатег — это решение для тех, у кого нет доступа к серверу и нет возможности хедеры проставить.
                                                                            +3
                                                                            Потому что автор пишет апи, которое встраивают на другие сайты, и не всегда у пользователей апи есть доступ к серверу.
                                                                            0
                                                                            Это очень по-майкрософтовски. А еще больше — по-американски, ведь майкрософт — довольно точное отражение американского бизнеса, бизнеса старой школы. Именно они будут делать все, чтобы не потерять 0.1% недополученной прибыли, даже жертвуя всем остальным.
                                                                              0
                                                                              В масштабах их бизнеса 0.1% — это может быть очень много, просто ОЧЕНЬ много.
                                                                              А бизнес строится ради заработка.
                                                                              Следовательно, отказываться от прибыли ради неясно чего — в заданных рамках задачи не вполне логично.
                                                                                +2
                                                                                ОЧЕНЬ много для кого? Для нас с вами? Если, скажем, корпорация получает 1млрд прибыли в год, и теряет один миллион — это много или мало?
                                                                                  +1
                                                                                  тем более тот же гугл банит уже девятку, хотя для него 3-4%% — это тоже ОЧЕНЬ много в рамках наших с вами представлений.
                                                                                    –2
                                                                                    Но гугл же не СВОЙ браузер банит, как ни странно)
                                                                                      0
                                                                                      К хрому претензий нет, вот и не банит.
                                                                                +10
                                                                                Ого, на хабре снова драма про браузеры, молчать неможно! Давайте добавим контекста.

                                                                                MS конечно компания специфическая, мы с ней с начала 2K годов работаем как вендор (слава Богу не по браузерной части). Но называть их безголовыми дебилами я думаю не правомерно. IE все еще торчит как заноза в корпоративном секторе. Главным образом потому что за годы его существования было написано дофигищщи кривых как рожа бульдога интранет LOB приложений. Писаны они были в мохнатые годы, и они банально не пашут без означенных выше костылей. Кто тут виноват? Ну конечно не прекрасные идусские, белорусские, китайские, украинские и китайские оффшорные программисты, наковырявшие этих монстров. О, эти формы с десятками iframe и XSS изо всех щелей! О, безумные SPA велосипеды, ископаемые компонентные библиотеки для ASP на VB6 и комах, фигачащие тонны дерьма в тело документа. Надо бы, конечно, выкосить эту лажу и сделать по-нормальному, с преферансом и поэтессами.

                                                                                И вот бравые офшорные прогеры шлют предложение своему клиенту, американской жадине-говядине, со словами а не переписать ли нам ваш говенный LOB app, который мы с вами уже лет 15 лабаем, под новые классные стандарты. Вы сможете использовать Chrome! Сущие копейки, ей-Богу, 100500 человеко-лет + стабилизация. Ну и риски там всякие.

                                                                                А очередная корпоративная жадина-говядина на фоне унылого американского стока думает а не поставить ли мне в бюджет еще 10-15 лямов на то, чтобы мой LOB соответствовал последней моде W3C, а мои оффшорные прогеры были счастливы и писали радугой. Мы же тогда сможем использовать Chrome! А потом такие собираются, считают бабки и… да ну его к лешему, лучше нет, останемся как есть, пока end-of-life не наступит. Работает же, чо.

                                                                                А тем временем не менее унылый PM в майкросе корпеет над фича-сетом под свой кусочек поддержки HTML5/CSS3 стандарта на следующий финансовый год. И думает такой: эх выкусить бы всю эту лажу… Идет к принципалу, а тот ему: деточка, эта лажа будет migration blocker-ом для вот этого длинного списка компаний. И наше любимые партнеры из CDW, SoftwareOne и прочих больших ритейлеров, которые впаривают им лицензии вагонами, отгрызут нам с тобой задницу по самый подбородок. И вот унылый PM идет думать как ввереный ему кусочек поддержки HTML5/CSS3 заземлить с учетом его унылых реалий.

                                                                                Поэтому не ругайте редмонд. Там далеко не идиоты сидят, просто у них жизнь несколько сложнее чем у Гугла с Яндексом. Вот и крутятся как умеют. А legacy они выдавят из поддержки, просто они зависят от end-of-life для XP и Висты…
                                                                                  –2
                                                                                  Это всё весьма поэтично, только не имеет никакого отношения к обозначенной в посте проблеме. Здесь далеко не про интранет LOB-приложения говорится.
                                                                                    –2
                                                                                    > они банально не пашут без означенных выше костылей

                                                                                    Ок, допустим.
                                                                                    А зачем ломать обратную совместимость между бетой и релизом?
                                                                                    А зачем писать функционал, который падает в предыдущей версии оси?
                                                                                    А зачем вместо пересборки предыдущей версии движка эмулировать все его баги на новом?
                                                                                    Зачем списку совместимости давать больший приоритет, чем явному указанию режима совместимости вебмастером?
                                                                                      +4
                                                                                      > А зачем ломать обратную совместимость между бетой и релизом?

                                                                                      Например, потому что бета ни к чему не обязывает по определению?

                                                                                      > А зачем вместо пересборки предыдущей версии движка эмулировать все его баги на новом?

                                                                                      Например, потому что юзер не захочет держать на компе пять версий IE и постоянно их перезапускать?

                                                                                      > Зачем списку совместимости давать больший приоритет, чем явному указанию режима совместимости вебмастером?

                                                                                      Как мы уже выяснили, перекрытия режима совместимости из шапки удостоились далеко не все сайты. Есть основания полагать, что в Майкрософте заметили, что «IE=edge» в шапке конкретно этих сайтов — полная брехня, и сайт таки ломается в новой версии. Что у Яндекса ломается и как ломается — это, полагаю, вам будет выяснить гораздо легче.
                                                                                        +2
                                                                                        MS по какой то причине сделали это(например, если edge было выставлено во времена IE9 и на сайт благополучно забили). И всё это, для того что бы у миллиона Юзеров всё было хорошо — благая причина.

                                                                                        Если вы разработчик, на время разработки можете поменять у себя в developertoolbar, а MS уведомить, что мол, ребята, убирайте нас из списка, мы бдим! MS убирает вас из списка и вы обновляете всё у себя.
                                                                                        Всем хорошо и никакой истерики.
                                                                                          0
                                                                                          Упс, ошибся уровнем ответа :)
                                                                                          0
                                                                                          > Например, потому что бета ни к чему не обязывает по определению?

                                                                                          Название Developer Preview как бы намекают на то, что это почти вот-вот. Какое ещё «ни к чему не обязывает»?!

                                                                                          > Например, потому что юзер не захочет держать на компе пять версий IE и постоянно их перезапускать?

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

                                                                                          > Есть основания полагать, что в Майкрософте заметили, что «IE=edge» в шапке конкретно этих сайтов — полная брехня, и сайт таки ломается в новой версии.

                                                                                          Только почему-то на сайтах, которые обновляются куда чаще чем версии IE. Сайт может быть починен за неделю, от силы месяц. Новая версия IE дай бог через год выйдет.
                                                                                            0
                                                                                            Название Developer Preview как бы намекают на то, что это почти вот-вот. Какое ещё «ни к чему не обязывает»?!

                                                                                            Ну что за фантазии? Фичи в бете свободно появляются и исчезают, на то она и бета, хоть «превью» её назови, хоть ещё как. Фичу и после релиза первым же апдейтом могут выпилить, если что-то пойдёт не так — никто никому ничем не обязан.

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

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

                                                                                            Смотрите. Майкрософту нужно, чтобы при обновлении оси и браузера не начинали глючить самые популярные сайты. Предложите решение. Вариант «сообщить разработчикам о проблемах» не прокатывает, потому что МС наверняка и так сообщают, прежде чем запихнуть в список совместимости.

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

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

                                                                                            «IE=edge» — это вообще режим по умолчанию, этот текст не должен присутствовать в шапке и заголовках. Это фича для стадии разработки. Что куча разработчиков страдает от наличия кнопки переключения режима совместимости в ИЕ — это их личные проблемы. И что Майкрософту, заметившему глюки на каком-то сайте, приходится жёстко перекрывать «IE=edge» — это тоже личные проблемы разработчиков, которые пихают опции без нужды.
                                                                                      0
                                                                                      Так разобрались или нет? Прочитав всю ветку комментариев сделал только вывод, что пост автора не совсем корректен по причине того, что проблема не в браузере, а в домене, включенном в список.
                                                                                      Отсюда следует, что если вы заявляете о поддержке IE в своем проекте, вам сначала необходимо будет прочекать этот лист на предмет нахождения своего сайта?
                                                                                        0
                                                                                        Пока дочитал комментарии до конца, незаметно для себя скачал Firefox на соседней вкладке (IE, конечно же).
                                                                                        Вот что наделали ваши зомбирующие жгучие лучи ненависти!
                                                                                          0
                                                                                          Поддерживаю всеми руками и ногами! К счастью я не делаю либы или API по этому смело кладу на IE.
                                                                                          В другом топике вы писали, что уже отправили информацию о баге в MS, что вам ответили? Я так понимаю сейчас вопрос стоит, что бы вас исключили из злополучного списка.

                                                                                          Но с IE что то делать надо…
                                                                                          • UFO just landed and posted this here

                                                                                            Only users with full accounts can post comments. Log in, please.