Удосконалена підтримка ARIA в IE8, Різне, Інтернет-технології, статті

Добрий день! Мене звуть Тоні Росс і я є одним із програмних менеджерів 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 висловлює глибоку подяку всім, хто звернувся до них зі своїми зауваженнями та пропозиціями. Роль комп’ютерного співтовариства в прийнятті подібних рішень воістину важко переоцінити.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*