[Homeros] Теперь уже о Windows
Lex
lex на progger.ru
Вс Ноя 16 17:24:26 MSK 2014
Кажется, что вы меня не поняли. Я говорил о том, что для того, чтобы
построить accessibility-дерево браузер внутри себя работает с
dom-деревом (больше ему информацию то брать неоткуда). Разработчики
движка рендеринга HTML реализуют определенный набор правил
преобразования dom в accessibility-представление, которое потом с той
или иной долей точности отображается на интерфейсы ОС. Неопределенность
точности отображения определяется тем, что разные
accessibility-интерфейсы на разных платформах позволяют выносить разные
уровни детализации (например, упомянутая вами MSAA под windows не
позволяет предоставить информацию об уровне заголовка). Т.е. у нас
получается 3 уровня представления информации: dom -> внутреннее
accessibility-представление браузера -> платформозависимое API. И в
случае с Chromevox, поскольку он платформо-независимый, то не может
использовать имеющиеся accessibility-интерфейсы браузера, а никакого
общего кроссплатформенного accessibility API нет. В данном случае
возможный путь - это разработка такого API - обвертка в javascript
внутреннего представления accessibility-дерева Webkit, например. Но
разработчики Chromevox не пошли этим путем, решив самостоятельно
преобразовывать dom в accessibility-представление, удобное для
Chromevox. Я высказался в защиту этого решения в том смысле, что
экспериментировать с поддержкой новых фич html-разметки (аля стандарт
Aria) в javascript, по-видимому, проще, чем ждать их реализации на C++
от команды Webkit. По поводу необходимости перепиливать скринридер под
каждый чих верстки - вы сами отвечаете - на windows jaws десятилетиями
не использует accessibility-api для общения с браузерами, и никого это
не смущает. Тоесть Chromevox в этом отношении не первый, и, по всей
видимости, не последний.
Lex
16.11.2014 14:47, Nikita пишет:
> Здравствуйте, Lex.
>
>> Что касается модели доступа через DOM, то единственной проблемой, на
>> мой взгляд, в этом подходе является необходимость дублирования усилий
>> команд разработчиков поддержки accessibility webkit и chromevox,
>
> Это как раз лично меня мало волнует. Пускай это беспокоит их product
> менеджеров, хотя, судя по всему, в Google product менеджеров в
> направлении accessibility как раз и нет.
> Проблема в том, что перекос ChromeVox в сторону DOM делает ряд
> интерфейсных конструкций из под него менее доступными, чем при
> использовании комбинированного подхода.
>
>> А так ведь accessibility-представление в любом браузере строится на
>> обработке дерева DOM.
>
> Не совсем так. Ряд вещей получаются через MSAA или IAccessible2, ну
> или NSAccessibility на OS X. То есть далеко не все чтецы и не всегда
> разбирают DOM ручками.
> Более того, насколько я помню, исторически сперва вообще использовался
> только MSAA, и инновация JAWS в конце девяностых как раз и была в том,
> что они стали кое-какие вещи вытягивать из DOM.
> При этом, разработчики JAWS любят рассказывать, что они изобрели
> виртуальный курсор, но вообще-то сама концепция придумана была в
> рамках Window-Eyes, а в JAWS лишь развили её через комбинирование MSAA
> и DOM.
> В частности, DOM позволил получать информацию о заголовках и прочих
> структурных конструкциях, тогда как MSAA на тот момент отдавал только
> текст, ссылки и всё такое плоское.
>
>> Так же напомню, что jaws очень долгое время использовал (и, возможно,
>> продолжает использовать до сих пор) дерево DOM для предоставления
>> доступа к IE и Firefox.
>
> Конечно, продолжает. Вообще-то, если не ошибаюсь, и NVDA этим грешит в
> случае IE.
> Я же не против DOM, когда нет другого способа. Я против практически
> полного игнорирования accessibility API, когда он есть, потому что
> тогда нам нужно перепиливать screenreader под каждый чих в практиках
> вёрстки, тогда как API возлагает это на браузер. Ну а про разброд и
> шатание между чтецами и говорить даже не хочется, получается как в
> басне про лебедя, рака и щуку.
>
>> Ясно, значит это я долго не смотрел на chromevox.
>
> Ну судя по всему, у вас теперь куча времени, пока он снова обновиться.
> Кстати, я сегодня пытался поддержать вас с Михаилом в рассылке
> ChromeVox, только вот моё сообщение почему-то туда так и не дошло, но
> знайте, что я мысленно с вами. :-)
> Успехов. Никита.
> _______________________________________________
> Homeros mailing list
> Homeros на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/homeros
Подробная информация о списке рассылки Homeros