Еще раз к вопросу о Compatibility View: только факты
Мыуже не раз говорили о нашем подходе к совместимости с сайтами в общем и о функции Compatibility View, в частности. Но так как мы делились этой информацией на огромном количестве сайтов и в бесчисленном количестве статей, я бы хотел подытожить всю эту информацию в одной статье, чтобы при необходимости вы могли к ней обращаться.
Режим стандартов IE8, используемый по умолчанию Готовясь к выпуску первой бета-версии IE8, команда разработчиков Internet Explorer продемонстрировала свою приверженность совместимости и веб-стандартам, анонсировав, что по умолчанию IE8 будет обрабатывать страницы в режиме, максимально совместимом с утвержденными стандартами. Это значит, что просмотр страниц в режиме стандартов IE8 будет не опциональным, а режимом работы по умолчанию. Мы считаем, что это правильно решение, так как оно ориентировано на будущее. Мы учитываем мнение авторов сайтов. Мы верим в важность стандартов по умолчанию и впредь будет уделять этому вопросу более серьезное внимание.
Совместимость Вследствие принятого решения об обеспечении совместимости по умолчанию есть небольшие последствия, то есть проблемы совместимости с существующими страницами. Большинство сегодняшних веб-сайтов, включая созданные в полном соответствии со стандартами, ожидают старого, менее совместимого поведения от IE, и, в результате, могут работать некорректно. Вот что мы сделали, чтобы решить эту проблему:
- Мы распространили информацию обо всей той работе, которую сделала команда для обеспечения поддержки утвержденных стандартов в IE8 (CSS 2.1, Document Object Model, ARIA, cross-domain requests (XDR) и cross document messaging (XDM), а также начало поддержки HTML5), а также обратились к веб-разработчикам с просьбой обновить код их страниц для поддержки режима стандартов в IE8.
- Мы пропагандировали использование тега X-UA-Compatible для сайтов, которые не могут быть обновлены для поддержки режима стандартов в IE8. Данный тег позволяет авторам декларировать, в каком режиме стандартов лучше всего работает сайт - стандартов IE8 (опять же, стандартный режим, если отсутствует какой-либо заголовок) или стандартов IE7. Например, использование значения IE=EmulateIE7 приведет к тому, что IE8 будет отображать сайт так, как его отображал бы IE7.
- Для конечных и корпоративных пользователей мы предоставили способ уменьшения проблем с совместимостью под одним общим названием Compatibility View. Функция Compatibility View позволяет пользователям IE8 насладиться даже тем сайтом, авторы которого не прибегли к использованию ни одного из вышеназванных способов. Также он позволяет IT-отделам сохранить совместимость с большим количеством собственных сайтов компании, которые сегодня совместимы с Internet Explorer 7.
Compatibility View Впервые функция Compatibility View появилась в сборках Beta 2. В RC-версии на базе отзывов, полученных во время бета-тестирования, мы изменили способ работы с данной функцией. Самым заметным на тот момент изменением, пожалуй, можно считать список обновлений для Compatibility View.
С более подробным описанием работы данной функции можно ознакомиться в наших предыдущих статьях. Ниже я попытался резюмировать важные моменты и собрать воедино информацию, которая была разбросана по нескольким источникам.
- При установке браузера пользователь может выбрать, использовать список Compatibility View (и, таким образом, не использовать стандартные предустановленные настройки IE8) или нет. Пользователи должны самостоятельно выбрать использование списка Compatibility View и получать для него обновления, поскольку по умолчанию эта опция отключена. Пользователи также могут щелкнуть по кнопке, которая добавит сайт в список Compatibility View.
Есть два случая, когда использование режима Compatibility View является опцией по умолчанию. Во-первых, сайты, которые находятся в местной интрасети, отображаются в режиме Compatibility View по умолчанию. Это позволяет IE8 быть наиболее совместимым с внутренними сайтами компании, которые ожидают от браузера поведения IE7. Конечно же, пользователь может изменить данные настройки или они могут быть изменены с помощью групповых политик. Еще одним случаем является опция "Автоматическое восстановление после ошибок разметки страницы с помощью просмотра в режиме совместимости". Данная опция заслуживает внимательного изучения в отдельной статье, но здесь я просто отмечу, что данная настройка помогает сделать абсолютно непригодные для просмотра страницы пригодными. Когда механизм визуализации страниц IE сталкивается во время обработки страницы с невосстанавливаемой ошибкой, он показывает чистую страницу, вместо того, чтобы позволить пользователю работать с поврежденной или некорректно отображаемой страницей. В таком случае IE пытается временно (читать: пока вы не закроете и снова не откроете IE) открыть эту страницу в режиме Compatibility View. Мы считаем, что отображение страницы в том виде, как она была бы отображена в IE7, является наиболее логичным вариантом, нежели если бы данная страница не была отображена вообще. Мы много работаем над тем, чтобы решить известные случаи таких ошибок в нашем механизме визуализации.
- Владельцы сайтов всегда желают контролировать свой контент. По умолчанию Internet Explorer использует переключатель DOCTYPE для определения использования режимов - Quirks или режим стандартов (снова повторюсь, режим стандартов по умолчанию отвечает режиму стандартов IE8). Владельцы сайтов могут использовать тег X-UA-Compatible чтобы быть абсолютно уверенными в том, как отображается их сайт, и ассоциировать режим стандартов с таковым в IE7. Использование тега X-UA-Compatible изменяет настройки Compatibility View со стороны клиента.
- Обновление списка Compatibility View гарантирует, что у пользователей IE8 будет отличный опыт работы с популярными сайтами, которые еще не полностью приспособились к реализации веб-стандартов в IE8.
В последнее время я видел несколько заметок в блогах, в которых выражалась жалоба на функцию списка совместимости, в частности на то, что этот список будет в себя включать несметное количество сайтов, и будет использоваться вечно (и, таким образом, опровергать наше обещание о стандартах по умолчанию). Давайте уделим пару минут обсужденю полученных отзывов. Во-первых, использование списка включается только по выбору пользователя - по умолчанию он не активен. Во-вторых, цель данного списка состоит в том, чтобы у пользователей IE не возникало сложностей при посещении наиболее популярных сайтов в сети. Статистические данные показывают, что процентное соотношение достигнутых уникальных посетителей и среднее количество минут, которое пользователь проводит на сайте, значительно смещено в сторону таких популярных ресурсов как microsoft.com, facebook.com и cnn.com. Популярность доменов означает, что у пользователей был отличный опыт работы с IE8. В-третьих, мы используем отзывы, полученные с помощью телеметрии, сообщениях об ошибках, через утилиту Report a Webpage Problem и так далее, в качестве отправной точки для создания данного списка. Это реальные данные, которые относятся к реальному опыту совместимости; это очень точный способ узнать, какой именно опыт работы у пользователей IE с этими популярными сайтами. Дальше, мы смотрим на обновления списка как на краткосрочную опцию совместимости, и регулярно возвращаемся к необходимости списка как такового. Мы понимаем, что компаниям нужно время на то, чтобы обновить сайты для обеспечения совместимости в связи с переходом Internet Explorer на новый уровень поддержки веб-стандартов. Этот период обновления может очень сильно отличаться в разных организациях. До сего момента полученные отзывы были исключительно позитивными, так как многие понимают, чтоэто позволяет сконцентрироваться на режиме стандартов IE8 в долгосрочной перспективе. Наконец, мы продолжаем контактировать с владельцами сайтов (согласно данным WHOIS) каждого домена в списке и даем им знать об опыте, с которым пользователи IE8 сталкиваются на их сайтах, а также рассказываем им о шагах, которые помогут исправить ситуацию. Мы регулярно обновляем список совместимости, чтобы сделать этот процесс предсказуемым и для сайтов, и для ИТ-отделов.
- Иногда кнопка Compatibility View не отображается. Кнопка расположена в адресной строке рядом с кнопками "Stop" и "Refresh". Есть ряд случаев, когда сложно что-то сделать, поэтому кнопка Compatibility View не отображается:
- Если вы просматриваете внутреннюю страницу Internet Explorer (такую как about:InPrivate)
- Если вы просматриваете страницу, которая заявлена, как готовая к Internet Explorer 8 благодаря использованию специализированного мета-тега или HTTP-заголовка (неважно инициирует данный тег режим Quirks или режим стандартов IE7, IE8, кнопка все равно отображена не будет).
- Если вы просматриваете страницу во внутренней сети и включили опцию "Отобразить узлы интрасети в режиме совместимости".
- Если вы просматриваете какую-либо страницу и включили опцию "Отобразить все узлы в режиме совместимости".
- Если вы просматриваете страницу, включенную в поддерживаемый Microsoft список поддержки, и включили опцию "Добавить обновленные списки веб-узлов с веб-сайта Microsoft".
- Если вы переключились между "Режимом документа" и "Режим браузера" в панели разработчиков.
- Compatibility View и тег X-UA-Compatible не равнозначны. Compatibility View выполянется на стороне клиента. Данная функция влияет на три вещи: строку агента пользователя, Version Vector (используется при оценке условных комментариев), и в соответствии какому режиму стандартов будет инициирован вариант DOCTYPE - стандартов IE7 или IE8. Мета-тег или заголовок X-UA-Compatible связан с серверной стороной и, когда он используется, то полностью изменяет настройки Compatibility View на стороне клиента. Данный тег влияет на две вещи: Version Vector и какой вариант DOCTYPE этот режим стандартов инициирует. Он не может повлиять на строку агента пользователя, так как ее уже слишком поздно менять - сервер уже отправил серверу запрос GET (и он уже содержит строку агента пользователя). Для разработчика это значит, что если ваш сайт полагается на строку агента пользователя, просто добавив, тег X-UA-Compatible (что заставит IE8 отображать в режиме стандартов IE7) не сделает его совместимым - вам также необходимо будет обновить ваш механизм распознавания строки агента пользователя.
|