Обращение к компании «1С» со стороны Всероссийского общества слепых по вопросу обеспечения невизуальной доступности её продуктов (технические аспекты проблемы)

    Согласно данным пресс-службы Всероссийского общества слепых, президент данной организации направил обращение в адрес генерального директора Фирмы «1С» — Б. Г. Нуралиева, в котором отметил остроту проблемы трудоустройства и профессиональной реабилитации инвалидов по зрению в контексте недоступности продуктов «1С» для вспомогательного программного обеспечения, использующегося для невизуальной работы с компьютерной техникой.

    С полным текстом пресс-релиза можно ознакомиться на сайте ВОС. Здесь же имеет смысл дать несколько технических уточнений по поднятой проблеме, так как ввиду специфичности данной темы есть риск неправильного её понимания со стороны людей, не очень близких к технологиям невизуальной доступности, но являющихся ЛПР — лицами, принимающими решения.

    Первоначальный ликбез


    Прежде всего, следует отметить тот факт, что работа с компьютером абсолютно без использования зрения возможна и является рядовой практикой, в том числе и в России. При этом, работа тотально слепого пользователя возможна не только в специально созданном рабочем окружении, но и в стандартном интерфейсе операционной системы и в стандартных приложениях, причём зачастую с производительностью, сопоставимой с производительностью среднестатистического зрячего человека (хотя производительность невизуальной работы — это отдельный большой вопрос, выходящий за рамки текущей темы).

    Более того, если речь идёт о серьёзной профессиональной деятельности слепого человека, то максимальная эффективность, как правило, достигается именно при условии использования общераспространённых рабочих сред, просто с применением вспомогательного программного обеспечения, работающего в фоновом режиме и предоставляющего экранную информацию в альтернативном виде: речевой поток или вывод текста на тактильный дисплей.

    Подробности о принципах невизуальной работы за компьютером можно узнать из соответствующей статьи на Хабрахабре. Здесь же просто подчеркнём, что любые разговоры о разработки альтернативных рабочих сред в контексте профессиональной работы слепых в общем-то несостоятельны, и их несостоятельность доказана историей развития всей индустрии, поэтому данный вопрос можно даже не поднимать.

    Актуальность проблемы для всех


    Проблема невизуальной доступности программных интерфейсов, и в частности среды 1С, не является надуманной.

    К сожалению, число людей с проблемами зрения, несмотря на развитие медицины, наоборот увеличивается, так как в современном мире в разы возросла нагрузка на зрительную функцию организма. Это обуславливает увеличивающееся с каждым годом число людей, нуждающихся в реабилитации по причине снижения или полной утраты зрения. Причём, в том числе и профессиональной реабилитации, а не только бытовой.

    На государственном уровне эта проблема осознаётся, и одним из способов её решения является квотирование рабочих мест для инвалидов. То есть государство обязует компании обязательно иметь в своём штате людей с инвалидностью (тип нарушения не дифференцируется, но для справки доля инвалидов по зрению в общей массе примерно 8%). Можно даже утверждать, что до определённой степени на рынке труда имеется неудовлетворённый спрос на инвалидов, способных работать на высоком профессиональном уровне.

    Недоступность профессионального программного обеспечения для слепых является одним из факторов, затрудняющих решение обозначенной проблемы к выгоде всех трёх сторон:

    1. Инвалидов, желающих получить работу;
    2. Государства, стремящегося выполнить свои социальные функции;
    3. Организаций, желающих получить грамотного и эффективного сотрудника.


    Программный комплекс 1С для России и отдельных стран СНГ во многих областях является практически стандартом де-факто, поэтому вопрос его доступности, в контексте обозначенной проблемы, является крайне острым.

    Технические подходы


    В упомянутом обращении президента ВОС, есть следующая фраза:

    …назрела необходимость решения проблемы обеспечения совместимости программы 1С (версия 8) с программами невизуального экранного доступа (Jaws и NVDA). По предварительным оценкам данная доработка не потребует существенных временных и материальных затрат и мы готовы привлечь незрячих программистов с целью совместного решения данной проблемы».


    Следует сделать скидку на то, что это всего лишь пресс-релиз, и не воспринимать эту информацию как руководство к действию.

    Во-первых, JAWS и NVDA являются лишь частными случаями вспомогательного программного обеспечения, хотя и самыми распространёнными. Однако кроме них даже сейчас на российском рынке присутствует ещё два решения (COBRA и SuperNova), а в обозримом будущем должно появиться и третье (Window-Eyes).

    Во-вторых, доступность приложения корректнее реализовывать на более низком уровне, поднимаясь на уровень вспомогательного ПО лишь в отдельных случаях.

    Фактически существует два уровня:

    1. Уровень API доступности, реализованных в операционной системе;
    2. Уровень программы экранного доступа (у каждой программы реализация своя).


    В свою очередь, уровень программы экранного доступа также можно подразделить на:

    • API программы экранного доступа, через которое любое приложение может ограничено с ней взаимодействовать;
    • Модуль внутри программы экранного доступа, который представляет собой как бы плагин, который написан специально для реализации специфических вариантов взаимодействия с приложением, доступность которого обеспечивается.


    Таким образом, существует три подхода к реализации доступности приложения. Правда они зачастую перетекают друг в друга.

    Варианты решения проблемы


    Исходя из всего сказанного, можно выделить следующие стратегии по реализации доступности приложения.

    I. Адаптация программы под общие системные API доступности

    В рамках этого направления, разработчик должен доработать свой графический интерфейс с применением общих технических рекомендаций accessibility и специальных API: для Windows в общем случае это Microsoft Active Accessibility и более современный Microsoft UI Automation.

    Если интерфейс приложения разработан с применением какой-то отдельной среды или фреймворка, то, обычно у них есть свои технологии, например, Java Access Bridge для Java или QAccessibleInterface для Qt.

    Как правило, проблема возникает тогда, когда разработчик применяет интерфейсные фреймворки или кастомные классы, где по незнанию теряет функциональность accessibility, так как если в среде Windows строить интерфейс из стандартных элементов и по общим правилам, то его доступность обычно не вызывает серьёзных вопросов.

    Это хорошая стратегия, так как обеспечивает универсальную доступность, то есть сразу для всех программ экранного доступа.

    II. Адаптация приложения под конкретную программу экранного доступа

    В рамках этого направления, разработчик сосредотачивается на том, что реализует передачу значимой информации через API конкретной программы экранного доступа. Это может быть либо использование dll, которую предоставляет производитель программы экранного доступа, либо вызов объектов OLE Automation, также принадлежащих программе экранного доступа.

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

    Более того, при обеспечении доступности насыщенного интерфейса, использование довольно мало функциональных API программ экранного доступа крайне неудобно и низко эффективно. В целом, это довольно плохая практика, оправданная лишь в каких-то отдельных случаях и для решения малых локальных задач.

    III. Разработка модуля для программы экранного доступа

    В рамках данного подхода, исходное приложение, доступность которого обеспечивается, может вообще не подвергаться модификации. Работа ведётся чисто на уровне программы экранного доступа.

    Серьёзные программы экранного доступа имеют функционал кастомизации, что даёт возможность разработать для них некий скрипт или плагин, который будет реализовывать специфическую логику обработки элементов интерфейса определённого приложения. Традиционно это является самым распространённым вариантом решения проблемы, но это ещё не означает, что он наилучший.

    Его распространённость объясняется лишь тем, что зачастую проще разработать модуль для отдельной программы экранного доступа, чем убедить разработчика какого-то приложения в необходимости модификации. То есть это единственный вариант, который доступен без необходимости сотрудничества с разработчиком приложения.

    Правда решить проблемы доступности абсолютно без содействия со стороны разработчика также не всегда получается. Порой интерфейс в принципе не предоставляет возможности получить какие-либо данные кроме как по визуальному каналу. В частности, этим очень часто грешат разработчики антивирусов, случайно или на всякий случай, убивая API доступности. В таких случаях, от разработчика приложения требуется хотя бы минимальное содействие в виде предоставления по какому-то из API необходимых данных, например, положения системного фокуса или событий окна.

    Как правило, модули пишутся либо разработчиками программы экранного доступа, если речь идёт об очень распространённом приложении, доступность которого крайне актуальна, например, Microsoft Office, независимыми программистами, как правило, просто являющимися пользователями той или иной программы экранного доступа и решающих свои собственные задачи, либо программистами-аутсорсерами, нанимаемыми компанией-разработчиком приложения.

    Чтобы было понятно, рассмотрим упрощённый пример с реализацией доступности графической кнопки, не имеющей текстовой подписи, по которой её идентифицирует слепой пользователь:

    • Стратегия I: Добавляем в интерфейсе приложения к элементу button текстовую метку и обеспечиваем доступность для всех программ экранного доступа.
    • Стратегия II: Добавляем в комплект поставки приложения DLL от разработчика программы X, а когда системный фокус попадает на неподписанную кнопку, через DLL даём команду программе экранного доступа произнести текстовую метку. Если в поддержку обратится пользователь программы экранного доступа Y, то либо реализуем аналогичную схему и для этой программы, либо посоветуем ему перейти на программу X, причём он вряд ли будет этому рад.
    • Стратегия III: договоримся со специалистом, компетентным в написании модулей для программы экранного доступа X, или сами взрастим такого специалиста, который разработает плагин, произносящий текстовую метку, если в фокус попадает неподписанная кнопка. Если же в поддержку обратится пользователь программы Y, то аналогично стратегии II.


    Это три базовые стратегии, хотя могут существовать различные их комбинации, а также некоторые более изощрённые пути.

    Вопрос выбора оптимальной стратегии для реализации доступности того или иного приложения зачастую может быть спорным, однако в общем случае можно утверждать, что приоритет имеет смысл отдавать стратегии I, то есть универсальному пути через общесистемные API. Стратегия II вообще в случае крупных проектов неэффективна, а стратегия III, как правило, является неким компромиссом, плюс может быть использована для повышения usability, когда стратегия I полностью реализована.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 16

    • НЛО прилетело и опубликовало эту надпись здесь
        +4
        Да, это реально! Я специально на этом заострил внимание.

        При этом, конечно, порог вхождения для невизуальной работы выше, чем для визуальной, особенно если речь о серьёзной профессиональной деятельности. Всё-таки интуитивность интерфейсов разрабатывается с учётом их визуального восприятия, да и источников информации для обучения несоизмеримо меньше. Но тут надо понимать, что от хорошей жизни невизуальные методы взаимодействия никто не осваивает, это всё-таки вынужденная мера, обусловленная тем, что альтернатив просто нет. Так что мотивация там хорошая.

        От недоступности 1С не страдают случайные люди, потому что рядовых слепых пользователей это не очень интересует. Те, кто заинтересован в доступности 1С, — это, как правило, уже достаточно квалифицированные пользователи ПК, поэтому вопрос «можно или нельзя работать без зрения?» они для себя уже давно решили.
        • НЛО прилетело и опубликовало эту надпись здесь
        +2
        Даже не знаю, что бы я сделал, если бы для моих продуктов поступал подобный запрос. Хотя, в принципе, это дополнительное маркетинговое приемущество, то что твоим продуктом могут пользоваться даже слепые.
          0
          Программный комплекс 1С

          Что имеется в виду? Платформа «1С: Предприятие»? Продукты на его основе (включая сторонние конфигурации или «форки» стандартных, включая локальные, в рамках одного предприятия)? Или «Ил 2»? :)

          Но это мелочи. Главное в этом посте нет ответа, что будет делать 1С в ответ на обращение. Возможные стратегии описаны, но ведутся ли работы в рамках хоть какой-нибудь или в связи с обращением будут вестись — нет.
            0
            Прежде всего, речь об «1С: Предприятие», но и прочие продукты также представляют определённый интерес, особенно образовательные.

            Пресс-релиз на сайте ВОС датирован 23-м января. Возможно «1С» просто ещё не успели определиться со своей позицией по этому вопросу, так как о какой-либо официальной реакции данных нет.

            Если мне станет известно о какой-то официальной позиции «1С», то я дополню статью этой информацией. На Хабрахабре «1С», к сожалению, отсутствует, но я также готов разместить в статье от их имени любой комментарий, если они сочтут это необходимым и предоставят информацию (E-mail можно увидеть в моём профиле, нажав на ссылку с ником).
              0
              В случае начала работ по внедрению 1Сом таких интерфейсов в своих продуктах, непонятно — будут ли такие интерфейсы обязательными для всех отраслевых решений. Или каждый сам себе добровольно добавляет «маркетинговое преимущество»?
                0
                В Российской Федерации обязательные IT-стандарты доступности для пользователей с ограниченными возможностями в принципе не приняты, так что вряд ли кто-то кого-то будет обязывать. В РФ даже государство предпочитает эту тему пока обходить.
            • НЛО прилетело и опубликовало эту надпись здесь
                +1
                Давайте хотя бы тут попробуем обойтись без политики. Скажем так, «гипотетически стремящегося».
                • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Я понимаю, что существует определённая мода на то, чтобы говорить, что в России только воруют и абсолютно ничего не делают, но следует понимать, что это не совсем правильно, как и практически любое радикальное мнение.

                  Можно дискутировать по вопросу того, насколько эффективны различные социальные программы в РФ, но глупо отрицать, что они существуют. Более того, ни одно правительство не имеет ничего против того, чтобы обеспечить благосостояние населения. Так что как некая цель и заинтересованность это всегда присутствует.

                  Поверьте, что в государственном аппарате нет противников идеи трудоустройства инвалидов. Есть люди, которые против определённых мер или средств, например, не готовы выделять деньги в том объёме, в котором требуют объединения инвалидов, но с целью как таковой никто не спорит.

                  В любом случае, вряд ли рефлексия по поводу недостаточной социальной ориентации российского государства имеют отношения к предмету этой статьи. Вы лишь вырвали фразу из контекста. В целом, речь совсем о другом. В описанной ситуации вообще есть коммерческая компания «1С» и сообщество слепых пользователей ПК, которые не могут работать с распространённым приложением, государство же вообще в стороне.

                  К сожалению, во всей этой истории нет ничего необычного, и это отнюдь не очередное проявление «неполноценности русских». В США, где ситуация с профессиональной реабилитацией инвалидов в целом лучше, чем в РФ, также примерный аналог «1С: Предприятие» — программа QuickBooks недоступна для слепых. Проблема начала решаться буквально полгода назад, когда корпорация «Intuit», являющаяся разработчиком этого продукта, занялась этим вопросом в рамках некоммерческого сотрудничества с экспертным сообществом и объединением инвалидов по зрению «My Blind Spot».
                  • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Есть ли какие-то серьёзные преимущества у работы через API конкретных программ экранного доступа перед UI Automation? Положим, моё приложение нормально доступно через UIA — может ли возникнуть ситуация, когда подкручивание под конкретные программы имеет смысл, или UIA всегда будет хватать?

                  Просто любопытно. Вообще, я использую WPF и WinForms без выкрутасов, поэтому знаю, что UIA должен работать. Хотя ни разу не проверял.
                    0
                    Дело в том, что API программ экранного доступа предоставляет очень ограниченные возможности. Как правило, это две-три функции: заставить программу произнести какую-то фразу вслух, заставить программу вывести какой-то текст на тактильный дисплей или резко оборвать речь программы. Фактически это бывает полезно в случаях, когда нам просто надо донести до слепого пользователя информацию, которую он случайно может пропустить.

                    Например, у вас в интерфейсе приложения есть элемент label, на котором может меняться текст, отображая какую-то важную информацию. Вот это слепой пользователь может пропустить, тогда имеет смысл в функцию смены содержимого label также добавить отправку новой информации программе экранного доступа. В итоге при смене текста, программа экранного доступа будет произносить вслух и/или выводить на тактильный дисплей новые данные.

                    Когда речь идёт о работе по обеспечению доступности интерфейса, который сейчас в общем-то недоступен или доступен плохо, то этот инструмент использовать не имеет смысла. Например, задачу отсутствия возможности навигации по элементам управления с клавиатуры через него в принципе не решить.

                    Если вам это важно, то напишите мне, и я могу протестировать ваши продукты на предмет их доступности.
                    0
                    Да что уж там… В российском IT-секторе мало кто слышал про тот же WAI-ARIA. А большинство из тех, кто слышал, – кладут на это болт.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое