Диспетчер фреймов

Дата публикации:2006
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

События фрейма

Событием (event) в операционной системе Microsoft Windows называют любое изменение текущего состояния приложения или всей операционной системы. Источником событий могут стать и действия пользователя, и работающее приложение, и внутренние процессы самой операционной системы. Каждое приложение (в том числе и сама операционная система), согласно своему назначению, либо обрабатывает определенные события, либо игнорирует их. Словосочетанием "обработка события" обычно обозначают некоторый набор действий, которое приложение будет выполнять при наступлении определенного события. Нетрудно догадаться, что новые действия порождают новые события, которые повлекут за собой новые действия и так далее. Таким образом, формируется непрерывная цепочка "жизни операционной системы".

Для программы Jaws for Windows события - это настоящая находка, потому что они позволяют следить за состоянием других приложений и операционной системы. Если Jaws обнаруживает, что произошло какое-нибудь событие (например, в приложении открылось меню), то, в зависимости от вида события, Jaws выполняет определенные действия, чтобы дать понять пользователю, какие изменения произошли на экране компьютера (например, сообщит название меню и название первого пункта). Вот несколько событий из числа тех, которые обрабатывает Jaws:

  • пользователь нажал клавишу на клавиатуре (KeyPressedEvent),
  • на экране появился новый текст (NewTextEvent),
  • фокус ввода (например, при нажатии клавиш Tab или Alt+Tab) переместился от одного элемента управления к другому или от одного приложения к другому (FocusChangeEvent).

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

Итак, в описании события можно выделить несколько структурных элементов:

  1. Вид (тип) события - характеризует то, что случилось.Для работы с фреймами Jaws предоставляет пользователю четыре вида (типа) событий: изменение фокуса ввода (on focus), нажатие клавиши, связанной с фреймом (On Frame Key), выполнение какого-либо действия (On Play Action) и появление на экране текста (On Text). Например, если пользователь желает, чтобы в тот момент, когда фокус ввода попадает на какой-нибудь элемент внутри фрейма, озвучивался определенный текст, то он должен выбрать событие вида On focus (изменение фокуса ввода) и назначить для него соответствующее действие.
  2. Вид (тип) действия - характеризует то, что нужно сделать. Описывая одно событие, пользователь может закрепить за определенным видом события лишь один вид действия. Для того чтобы на тот же вид события выполнялось еще и другое действие, необходимо создать новое описание события, в котором выбрать тот же вид события, но назначить ему другое действие.
  3. Параметры действия - характеризует то, как и с чем нужно выполнить указанный вид действия (то есть характеризует объект действия). Например, пользователь может выбрать в качестве действия чтение текста из определенного окна (Say Window), тогда в параметрах действия он должен указать окно, из которого следует прочитать текст.
Виды событий

Рассмотрим подробнее те виды событий, которые пользователь может применить, приручая Jaws с помощью фреймов.

  • On Focus (Изменение фокуса ввода) - это событие возникает, когда фокус ввода (часто называемый системным курсором) попадает во внутреннюю область фрейма. Например, это событие происходит, когда пользователь, перемещаясь по элементам управления при помощи клавиши Tab, попадает на элемент управления, расположенный внутри фрейма. Это может быть полезно (и в некоторых случаях может быть более легким способом приручения Jaws, чем создание скриптов), когда, например, необходимо сообщить пользователю дополнительную информацию о текущем элементе управления в диалоговом окне или прочитать информацию из определенной области экрана. .
  • On Frame Key (Нажата клавиша, связанная с фреймом) - это событие происходит, когда пользователь нажимает комбинацию клавиш, связанную с каким-либо из активных фреймов. Эта комбинация клавиш устанавливается в диалоге Frame Properties (Свойства фрейма) на вкладке General (Общие).
  • On Play Action (Выполнение действия) - это событие возникает, когда другой фрейм обращается к этому фрейму с "просьбой" выполнить действие (Play Frame Actions). То есть фрейм, который обрабатывает событие On Play Action, будет "откликаться" на обращение других фреймов, которые обрабатывают свои виды событий. Для события On Play Action пользователь может установить Область Видимости События, чтобы ограничить число возможных ситуаций, когда фрейм будет реагировать на это событие.
  • On Text (Появление текста) - это событие возникает, когда во внутренней области фрейма появляется новый текст. В качестве нового текста может выступать любая последовательность символов, которой до этого момента не было на экране. Например, это может быть текст, вводимый с клавиатуры в поле редактирования, это может быть текст раскрывшегося комбинированного списка или текст, содержащийся в окне диалога, при первом появлении этого диалога на экране. Пользователь может назначить фильтрацию появляющегося текста, то есть указать определенные признаки или содержание текста, исходя из чего появившийся на экране текст либо будет расценен как событие, либо будет проигнорирован. Для события On Text пользователь может установить Область Видимости События, чтобы ограничить число возможных ситуаций, когда фрейм будет реагировать на это событие.
Фильтрация текста

Если пользователь выбрал вид события On Text (Появление текста), то он может указать какой способ фильтрации текста следует применить, прежде чем сообщить фрейму о наступлении события On Text. Возможна фильтрация по следующим параметрам:

  • По цвету текста и фона. Цвет задается либо числовым значением в формате RGB (red -красный, green - зеленый, blue - синий), либо строковым описанием, которое пользователь может выбрать из списка.
  • По атрибутам текста (Полужирный, Выделенный, Курсив, Подчёркнутый и т.д.);
  • По строке-образцу. Строка-образец сравнивается с текстом, который появился внутри фрейма. Текст внутри фрейма должен не только совпадать по содержанию с образцом, но и располагаться на одной строке и не содержать в себе посторонних символов, элементов графики или фрагментов другого текста.
Область Видимости

на события On Play Action (Выполнение действия) и On Text (Появление текста) могут быть наложены ограничения в виде так называемой "области видимости". Это позволяет ограничить число ситуаций, в которых фрейм будет реагировать на эти события. Возможны следующие варианты установки области видимости события:

  • All the time, regardless of the location of the system focus (Всегда, независимо от положения фокуса ввода).
  • Only when the system focus is within the frame (Когда фокус ввода находится внутри фрейма).
  • Only when the system focus is not within the frame (Когда фокус ввода находится за пределами фрейма).
Действия

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

  • Проговаривание информации или вывод ее на тактильный дисплей - эту группу составляют действия, позволяющие озвучить определенный текст или вывести его на брайлевский дисплей.
    1. Braille Frame - отобразить на брайлевском дисплее текст из определенного фрейма.
    2. Braille Frame (Attribute) - отобразить на брайлевском дисплее текст, содержащийся в определенном фрейме и имеющий указанные атрибуты.
    3. Braille String - отобразить на брайлевском дисплее строку текста.
    4. Braille String (Formatted) - отобразить на брайлевском дисплее форматированную строку текста (строка форматируется специальными скриптами).
    5. Braille Window - отобразить на брайлевском дисплее текст из определенного окна.
    6. Braille Window (Attribute) - отобразить на брайлевском дисплее текст, содержащийся в определенном окне и имеющий указанные атрибуты.
    7. Say Frame - прочитать текст из определенного фрейма. Say Frame (Attribute) - прочитать текст, содержащийся в определенном фрейме и имеющий указанные атрибуты. Say String - прочитать строку текста. Say String (Formatted) - прочитать строку текста (строка форматируется специальными скриптами).
    8. Say Window - прочитать текст из определенного окна.
    9. Say Window (Attribute) - прочитать текст, содержащийся в определенном окне и имеющий указанные атрибуты.
    10. Say Tutor Message - прочитать обучающую подсказку (если включен режим проговаривания обучающих сообщений и такое сообщение существует).
    11. Speak Text Filter - прочитать текст из фрейма в соответствии с настройками текстового фильтра. Если фильтрация текста не установлена, то читается весь текст из фрейма.
  • Изменение положения курсоров - группа действий, перемещающих различные курсоры в определенные позиции.
    1. Route JAWS cursor to frame - Переместить Jaws-Курсор к верхнему левому углу фрейма.
    2. Route JAWS cursor to window - Переместить JAWS Курсор к верхнему левому углу окна.
    3. Route JAWS cursor to PC - Переместить Jaws-Курсор к системному Курсору.
  • Воспроизведение Звуков - эта группа действий, позволяющих воспроизвести звуковой файл (wav) через звуковую плату или звуковой сигнал через системный динамик.
    1. Beep - воспроизвести звук системного динамика или один из системных звуков.
    2. Play Sound - воспроизвести звуковой файл (wav).
  • Прочие действия - эту группу составляют действия, не вошедшие в две предыдущих::
    1. Load JAWS Configuration Files - Загрузить Конфигурационные Файлы Jaws.
    2. Play Actions Specified in other Frames- Исполнить Действия, Указанные в Других Фреймах.
    3. Run JAWS Scripts - Выполнить Скрипт Jaws.
    4. Run Script Event - выполнить скриптовый обработчик события (вызвать событийную функцию из файла скриптов).
    5. Suppress Script Events - Заблокировать передачу событий скриптам. Это действие позволяет заблокировать событийные функции скриптов, чтобы избежать повторного или некорректного чтения информации или отображения ее на тактильном дисплее.
Создание и модификация событий фрейма

Создавая новые описания событий фрейма или изменяя существующие, пользователь должен заполнить поля ввода значений в целой группе диалогов. Диалоги следуют один за другим и переход к следующему диалогу осуществляется нажатием кнопки "Далее" ("Next"). В завершающем диалоге вместо указанной кнопки располагается кнопка "Готово" ("Finish"). Кнопки "Далее" и "Готово" являются кнопками по умолчанию. Прервать процедуру создания или изменения описания события можно, нажав кнопку "Отмена" ("Cancel") или при помощи клавиши Escape. Заголовки диалогов создания описания события содержат строку "Create Event" ("Создание События"), а диалоги изменения существующих правил активации - строку "Modify Event" ("Изменение События").

Далее приводится краткое описание этих диалоговых окон.

  1. Первым всегда появляется диалог, в котором пользователь должен выбрать вид (тип) события. В диалоге располагается комбинированный список, содержащий четыре вида событий, о которых говорилось ранее: On Focus, ON Frame Key, On Play Action, On Text. Также в диалоге находится текст, поясняющий назначение выбранного вида событий. Этот текст произносится программой Jaws (если не отключено эхо экрана).
  2. Содержание последующих диалогов зависит от того, какой вид события выбрал пользователь на предыдущем шаге. Для события On Text откроется диалог, в котором необходимо задать текстовый фильтр, а потом - диалог определения области видимости события. Для события On Play Action сразу появится диалог определения области видимости события. В случае событий On Focus и On Frame Key сразу появится диалог выбора действия, которое будет выполнено при наступлении данных событий.
  3. Диалог определения области видимости события (Event Scope) содержит блок из трех радиокнопок, позволяющих выбрать один из следующих вариантов видимости события: All the time, When focus is within this frame, When focus is not within this frame.
  4. Диалог настройки текстового фильтра (Text Filters) содержит гораздо больше элементов управления, чем предыдущие диалоги. Здесь можно установить цвет текста и фона. Для этого предназначены два поля редактирования совмещенные со списком названий цветов (Foreground - цвет текста и Background - цвет фона) и кнопка "Get Colors From Mouse Location" (при нажатии которой вышеназванные поля будут заполнены цветом текста и фона в позиции Jaws-курсора). Также в этом диалоге присутствует набор флажков (checkbox), которые позволяют определить атрибуты фильтруемого текста (Bold - полужирный, Italic - курсив, Underline - подчеркнутый, StrikeThrough- перечеркнутый, Highlight- подсвеченный). Кроме того, в этом диалоге есть поле редактирования, где можно указать строку, которая будет использована для фильтрации текста.
  5. В диалоге выбора действия (Frame Actions) располагается комбинированный список, содержащий те действия, которые программа Jaws может выполнить при наступлении выбранного события. Также здесь присутствует краткое описание текущего действия (Action Description), которое озвучивается программой Jaws.
  6. В следующем диалоге пользователь должен определить параметры действия. В зависимости от того, какое действие он выбрал на предыдущем шаге, на экране появится диалог с тем или иным набором элементов управления. Например, для действия Say Window в этом диалоге будут находиться поле редактирования с комбинированным списком, в котором нужно ввести или выбрать заголовок окна, текст из которого будет прочитан, поле редактирования, в котором можно указать ID элемента управления, а также список, в котором можно выбрать настройки голоса, которым Jaws будет читать текст (Voice Context). Диалог определения параметров действия является завершающим диалогом, после нажатия кнопки "Готово" новое описание событий появится в списке событий на вкладке Events (События) диалога Frame Properties (Свойства фрейма), а если вносились изменения в существующее описание события, то в списке будут отражены соответствующие изменения.


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2024