Объектная навигация
Что такое объекты?
Объекты – это конкретные единицы информации. Операционная система располагает их по принципу иерархической структуры подобно тому, как отображается дерево папок в проводнике. Примерами объектов могут быть:
- Кнопки
- Пункты меню и иконки на рабочем столе
- Части текста в текстовых редакторах (“Word”, “Блокнот”), надписи в диалоговых окнах, текст на веб-страницах
- Элементы форм (редакторы, флажки, радиокнопки)
- таблицы
- заголовок окна, строка меню, панель задач
- Системный лоток
- И даже… рабочий стол.
Некоторые объекты, такие как строка меню, могут состоять из множества других.
Говоря технически, строку меню можно назвать родительским объектом, а пункты меню в нем (такие как “Файл”, “Правка” и т.д.) – дочерними объектами.
К объектам, которые находятся на одном уровне иерархии, можно обращаться как к следующему и предыдущему.
Вернемся к примеру со строкой меню. Объект строка меню является родителем для объектов “Файл”, “Правка”, “Вид”.
Они же являются объектами одного уровня, потому-что сыновья одного родителя – строки меню.
Но, в свою очередь, объект “Файл” есть родителем для множества элементов: “открыть”, “сохранить”, “создать” и т.д. Эти подпункты меню можно назвать дочерними для объекта “Файл”.
Что такое объектная навигация?
Объектная навигация – это основной способ навигации или, другими словами исследования, в NVDA.
Она дает возможность пользователю найти нужный ему объект, не перемещая к нему фокуса, или получить доступ к объекту, на котором нельзя установить фокус с помощью клавиш перемещения курсора.
Вы можете двигаться от родительского объекта к дочернему и наоборот, а также к предыдущему/следующему объекту одного уровня.
Если вы не знакомы с принципами объектной навигации и пользовались до этого только “плоской” навигацией, имея представление о всем изображенном на экране сразу и двигаясь просто стрелками вверх/вниз (как в режиме jaws-курсора у одноименного скринридера), то для вас будет полезным следующий пример:
Практический пример
В этом примере мы будем использовать части мобильного телефона, чтобы описать объектную навигацию и принцип ее работы.
Вспомним, из чего состоит мобильный телефон:
- корпус
- клавиатура
- блок цифровых клавиш
- функциональные клавиши
- камера
- экран
В нашем примере, мы будем использовать только эти компоненты.
Представьте, что каждый компонент мобильного телефона – это объект.
Эти объекты могут быть построены в иерархию, где некоторый меньший объект является “кирпичиком” для другого.
Например корпус в целом состоит из всех этих компонентов, и поскольку он самый “старший” в иерархии, назовем его “главным родительским объектом”.
Все остальные компоненты являются его дочерними. В нашем примере, дочерними будут 3 объекта: камера, экран и клавиатура.
У экрана и камеры нет больше дочерних объектов, а у клавиатуры есть 2 – это цифровой блок и функциональные клавиши. Чтобы нагляднее показать эту иерархию, используем вложенный список:
- 1. Корпус (или телефон в целом)
- 1.1. Экран
- 1.2. Камера
- 1.3. Клавиатура
- 1.3.1. Цифры
- 1.3.2. Функциональные клавиши
Иерархия объектов в операционной системе – по сути тоже самое.
Полезные возможности объектной навигации в NVDA
Ниже приведены полезные особенности объектной навигации, реализованые в NVDA. Чтобы ознакомиться со списком клавиатурных команд, смотрите следующий раздел.
- Когда вы используете объектную навигацию, фокус не изменяется вслед за навигатором, что может быть полезно при просмотре открытого документа, и одновременной работе в другом приложении.
NVDA дает возможность осуществить это без переключения между окнами. - Вы можете активировать объект при помощи NVDA+ввод на цифровом блоке даже если фокус находится в другом месте.
- вы можете узнать размеры и размещение объекта на экране при помощи NVDA+shift+5 на цифровом блоке.
Клавиатурные комманды объектной навигации
Более подробный список смотрите в файле клавиатурных команд NVDA.
(numpad – клавиши в правой части клавиатуры, на цифровом блоке)
- NVDA+7: Включает или выключает автоматическое следование навигатора при смене фокуса. Отключите привязывание, если вам необходимо получать информацию в другом приложении, одновременно работая с первым.
- NVDA+numpad5: Озвучивает объект, на котором сейчас остановлен навигатор. Если нажато дважды – читается по символам, Если нажато трижды, информация копируется в буфер обмена.
- Shift+NVDA+numpad5: Озвучивает размеры и расположение объекта, на котором в данный момент установлен навигатор.
- Control+Shift+NVDA+numpad5: Озвучивает информацию о положении объекта в иерархии, сообщая дерево его родительских объектов.
- NVDA+numpad8: Приводит навигатор к родительскому объекту относительно текущего.
- NVDA+numpad2: Приводит навигатор к первому дочернему объекту относительно текущего.
- NVDA+numpad4: Приводит навигатор к предыдущему объекту, расположенному на том же уровне в иерархии, относительно текущего.
li> - NVDA+numpad6: Приводит навигатор к следующему объекту, расположенному на том же уровне в иерархии, относительно текущего.
- Shift+NVDA+numpad4: Приводит навигатор к предыдущему объекту в списке относительно текущего, При чем, он может и не находиться на том же уровне в иерархии.
- Shift+NVDA+numpad6: Приводит навигатор к следующему объекту в списке относительно текущего, так же не обращая внимания на то, находится ли он на том же уровне в иерархии.
- NVDA+numpadВвод: Выполняет установленное действие текущего объекта, например, щелчок мышью или выбор элемента списка.
- NVDA+numpadКосая черта: Перемещает указатель мыши к объекту, на котором расположен навигатор.
- NVDA+numpadЗвёздочка: Перемещает навигатор к объекту, где находится указатель мыши.
- NVDA+numpadMinus: Приводит навигатор к объекту в фокусе.
Какие недостатки у объектной навигации?
При помощи этого метода можно получить доступ к названию и состояниям конкретных объектов только если они были правильно установлены.
К примеру, названия некоторых пунктов меню могут быть недоступны, так как программист не установил для них корректного имени.
Для того, чтобы получить доступ к таким “неправильным” объектам нужно использовать видеоперехват, а этой функции в NVDA пока нет.
Почему объектная навигация используется в NVDA?
В данный момент времени это самый эффективный из доступных методов навигации без использования видеоперехвата. Также, такой подход используется в некоторых программах экранного доступа для Linux и программе virgo (cobra).