[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