Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

28.01.2009 12:37 | Galaxer

Добрый день! Меня зовут Тони Росс и я являюсь одним из программных менеджеров Internet Explorer. Мы уже говорили о том, что мы стремимся к тому, чтобы сделать Internet Explorer 8 настолько доступным, насколько это в принципе возможно. В новом браузере будет усовершенствовано взаимодействие с различными видами контента и внедрены функции, облегчающие задачи, стоящие перед веб-мастерами. Следуя этим целям, я расскажу вам об изменениях, внесенных нами в код приложения для улучшенной поддержки ARIA — синтаксиса, обеспечивающего доступ к динамическому содержимому страницы. В этой статье я расскажу, как IE работал прежде, каким образом осуществляется обработка соответствующего кода в настоящий момент и что сделанные изменения означают для пользователя.


Как IE работал прежде?
Поддержка ARIA была добавлена еще в первой бета-версии, однако, существовали определенные отличия в синтаксисе, зависевшие от режима работы браузера. В стандартном режиме доступ к атрибутам ARIA был реализован через скрипт, использующий стандартный синтаксис:

value = elm.getAttribute("aria-checked");



В режимах совместимости, например, с IE7 и Quirks-режиме, требовалось использование сamelCased-режима для преобразования имени искомого атрибута:

value = elm.getAttribute("ariaChecked");



Необходимость использовать различный синтаксис может сначала показаться странной, но это обусловлено тем, как IE обрабатывает атрибуты и свойства объектов. Свойства присутствуют в объектах в форме elm.property. Для удобства разработчиков веб-страниц IE автоматически осуществляет привязку атрибутов к свойствам. Если имя оригинального атрибута содержит дефис, IE адаптирует его для генерации необходимого синтаксиса:

value = elm.ariaChecked;



Без этого усовершенствования каждый дефис в имени интерпретировался бы как "минус":

value = elm.aria-checked;    // Попытка доступа к содержимому с дефисом

value = elm.aria - checked;  // Значение дефиса для интерпретатора скрипта

// Значение дефиса для интерпретатора скрипта[/code]

Прежние версии IE и режимы совместимости IE8 используют одно и то же имя как для свойств, так и для атрибутов. Следовательно, изменение имени свойства влияет на синтаксис команды getAttribute. Это изменение применяется для всех оригинальных атрибутов с дефисом, а не только для тех, которые являются частью ARIA. IE не интерпретирует неизвестные атрибуты и просто не обрабатывает такие имена, как, например, "foo-bar". В стандартном режиме IE8 удается избегать этой проблемы, используя отдельные имена для атрибутов и свойств.


Как IE работает теперь?
Изначально поддержка стандартного синтаксиса ARIA в режиме совместимости с IE7 и Quirks-режиме не была реализована из-за сложностей, о которых сказано выше. Обратная совместимость — приоритетная задача и смысл существования этих режимов, поэтому наша команда крайне осторожна при внесении изменений в их архитектуру.

Однако, мы получили массу отзывов, в которых выражается озабоченность тем, что используются два синтаксиса для ARIA. Отзывы приходили от веб-мастеров, производителей оборудования и представителей организаций по стандартизации. Их озабоченность была прежде всего сосредоточена на том, что существует множество ресурсов, которые не оптимизированы для работы с IE8 в стандартном режиме. Для них добавление поддержки ARIA означало дилемму: либо выбрать один синтаксис из двух, либо прилагать дополнительные усилия для поддержки обоих вариантов.

Признав критику в свой адрес справедливой, мы вновь проанализировали поведение IE при обработке ARIA. Прежние версии программы вообще не имели поддержки этой технологии. Они интерпретировали атрибуты ARIA как неопределяемые и не переписывали их имена в camelCase-режиме. Это означало, что механизм программы обрабатывал ARIA, используя стандартный синтаксис, но в то же время информация о результатах обработки не была доступна через интерфейс программирования, такой, например, как Microsoft Active Accessibility (MSAA).

Принимая во внимание эти сведения вкупе с полученными отзывами, мы решили внести изменения в работу браузера. Теперь IE8 будет правильно интерпретировать дефис в именах атрибутов и свойств при работе с ARIA. Как часть этих изменений, camelCase-режим для свойств ARIA больше не будет использоваться, что позволит избежать конфликта между именами, обсуждавшегося ранее в этой статье. Теперь достаточно применения стандартного синтаксиса, чтобы IE8 без ошибок работал с контентом, поддерживающим функции ARIA, — не имеет значения, какой из режимов браузера используется:

[code]value = elm.getAttribute("aria-checked");[/code]


Что же означают эти изменения?

Для веб-дизайнеров:
Теперь использовать ARIA в содержимом веб-страниц станет еще проще. Необходимость поддержки разнородных синтаксисов удалена.

  • Один синтаксис для всех режимов обозревателя
  • Одинаковый синтаксис для всех браузеров
  • Один синтаксис, отвечающий требованиям общего стандарта.



Для рядовых пользователей:
Эти изменения делают множество прежде несовместимых страниц отныне совместимыми с IE8, поскольку теперь все режимы обозревателя поддерживают стандарт ARIA.

Для ARIA:
Указанные изменения помогут успешнее внедрять стандартный синтаксис для ARIA, поскольку нет больше необходимости беспокоиться по поводу необходимости работать с альтернативным вариантом.


Заключение
Вместо использования нескольких синтаксисов для ARIA, как это было в первой бета-версии IE8, теперь можно использовать только один, полностью отвечающий разработанному стандарту. Эти изменения были сделаны с тем, чтобы обеспечить положительный эффект использования браузера для веб-мастеров, пользователей и самого стандарта ARIA. Команда разработчиков IE выражает глубокую благодарность всем, кто обратился к ним со своими замечаниями и предложениями. Роль компьютерного сообщества в принятии подобных решений поистине трудно переоценить.

Тони Росс (Tony Ross),
программный менеджер Internet Explorer


Источник: http://blogs.msdn.com/ieru
Перевод: Galaxer

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.034 секунд (Общее время SQL: 0.015 секунд - SQL запросов: 51 - Среднее время SQL: 0.00029 секунд))
Top.Mail.Ru