Monday, October 16th, 2017

Усовершенствованная поддержка ARIA в IE8 RC

Published on Март 2, 2009 by   ·   Комментариев нет

Добрый день! Меня зовут Тони Росс и я являюсь одним из программных менеджеров 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;  // Значение дефиса для интерпретатора скрипта

Прежние версии 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, — не имеет значения, какой из режимов браузера используется:

Код:
value = elm.getAttribute(«aria-checked»);

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

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

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

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

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

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

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

best places to buy cigars online

Источник: http://blogs.msdn.com/ieru

zp8497586rq









Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]