Internet Explorer
21 September 2009

IE7 vs. DXTransform или Как баги становятся фичами

Информация к размышлению.
Возвращаясь к теме рендеринга текста в браузерах, захотелось мне слегка затронуть тему проблем IE7 в сочетании с DXTransform-фильтрами; самое распространенное, с чем приходится иногда сталкиваться — filter:opacity(), например. (перевод мой)

Снова привет, это Питер Гуревич, я менеджер проекта IE по части ClearType (помимо того, о чем можно прочесть у меня в блоге). Сегодня я хочу обратить ваше внимание на вопрос о взаимодействии DXTransforms и ClearType, а так же рассказать, что мы сделали для повышения читаемости текста в IE.

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

Чтобы обеспечить хорошую читаемость текста в IE, в релиз-кандитате мы решили отключить ClearType для всех элементов, к которым применяется DXTransform. Мы будем отрисовывать текст в этих элементах несглаженным, чтобы он лучше читался. Остальноей текст на странице будет выведен через ClearType. Это объясняет, почему часть (или чуть больше) сайтов будут показывать текст несглаженным.

Дальше в комментариях отзывы. Страдает разработчик:
Эту проблему можно наблюдать и в других случаях (жирный текст или PNG с полупрозрачностью, например). У них у всех есть одно и то же решение: надо установить цвет фона. До тех пор, пока это не приемлимое решение на все времена, это по крайней мере то, чем пользуются разработчики, когда им приходится считаться с IE для того, чтобы создать страницу, более-менее похожую на необходимую. А с этими изменениями, такое решение перестает быть хорошим. Это значит, что мы можем либо иметь красивый текст, либо прозрачность, но все сразу получить не выйдет. Это неприемлимо. И до тех пор, пока проблема не будет решена везде, у нас получается еще один костыль в добавок ко всем прочим, которые создают очень много проблем при поддержке IE. Либо чините, либо оставьте как есть, но не надо создавайте очередную неожиданность, которую никак нельзя контролировать. Можно ведь ввести например фильтр ("-ms-text-smoothing" или что-то вроде того). Можете даже установить его дефолтное значение в ‘none’, если очень уж надо. Но это по крайней мере даст возможность разработчикам исправить баг без потери функциональности.

Страдает обычный юзер:
Очень жаль, что MS просто не сделала ОПЦИЮ, которая включала или отключала это. Я предпочитаю, чтобы она была включена везде, на всех сайтах, без разницы, размыт текст, или нет.

И наконец, самое ужасное:
Судя по отзывам: 185407, в IE7 это так и не починят. Они почти закончили, и RC1, похоже, станет тем, что мы в итоге увидим. Я очень расстроен, что они решили отказаться от ClearType. Никогда не видел таких искажений, лучше бы оставили ClearType везде включенным, либо везде выключенным.

Ну и для примера, как ломается сайт, если у разработчика кривые руки злоупотреблять этими самыми фильтрами.

+15
414 4
Comments 7