Разработка дополнений для NVDA

NVDA (Non-visual Desktop Access) — это бесплатная программа экранного доступа с открытым исходным кодом, которая разрабатывается компанией NV Access. Дополнения для NVDA — это инструменты, которые предназначены для расширения функциональности программы и изменения ее возможностей. Они делают NVDA более гибкой и удобной для разных пользователей. Преимущественно дополнения разрабатываются на языке программирования Python, но иногда  в них присутствуют и составные компоненты, написанные на других языках программирования. С помощью дополнений пользователи могут добавлять новые функции, изменять стандартное поведение программы и автоматизировать выполнение повседневных задач.

Роль дополнений NVDA не ограничивается только расширением возможностей программы. Они также способствуют наработке персонализированного опыта использования программы, позволяя пользователю настраивать ее под собственные потребности и предпочтения. Таким образом, дополнения не только расширяют возможности NVDA, но и открывают незрячему пользователю путь к индивидуализированному и комфортному использованию программы экранного доступа.

Целевая аудитория

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

Требования к компетенциям слушателя

  • Знание и умение объектно-ориентированного программирования на языке Python или успешное освоение курса «Введение в Python для разработчиков»;
  • Владение навыками работы на ПК под управлением ОС Windows на среднем пользовательском уровне;
  • Владение навыками ввода текста в английской раскладке клавиатуры;
  • Использование программы экранного доступа NVDA на уровне квалифицированного пользователя.

Основные темы курса

Курс представлен следующими темами:

  1. Создание рабочего места для разработки дополнений:
    1. Настройка портативной NVDA;
    2. Журнал сообщений;
    3. Сохранение отчётов в файл;
    4. Предварительное знакомство со структурой дополнения;
    5. Возможные ошибки при работе с дополнениями в NVDA.
  2. Разновидности дополнений NVDA, структура файлов и папок в дополнениях:
    1. Виды плагинов;
    2. Получение имя открытого приложение;
    3. Структура папок и файлов дополнения;
    4. Структура файла «manifest.ini»;
    5. Добавочный код установки и удаления дополнения;
    6. Упаковка дополнений NVDA;
    7. Ограничения по именам проекта;
    8. Завершение работы дополнения NVDA;
    9. Возможности метода «chooseNVDAObjectOverlayClasses».
  3. Пространство имён дополнений, потоки и файлы конфигураций в NVDA:
    1. Пространство имён дополнений;
    2. Поиск путей модулей;
    3. Концепция — Разделяй и властвуй;
    4. Различные способы импорта модулей;
    5. Потоки в NVDA;
    6. Сохранения данных в конфигурационных файлах;
    7. Ограничения файла настроек NVDA «nvda.ini».
  4. Разбор компонентов NVDA:
    1. Работа с исходным кодом NVDA;
    2. Основной модуль «globalCommands»;
    3. Полезные модули в NVDA;
    4. События в NVDA;
    5. Дополнительные функции работы с событиями, с клавиатурой и мышью в NVDA.
  5. Расширение возможности NVDA с помощью добавления сторонних библиотек:
    1. Определение необходимой версии Python;
    2. Нахождения изменений в двух исходных файлах;
    3. Установка сторонних библиотек Python;
    4. Добавление сторонних библиотек в NVDA;
    5. Возможные ограничения в сторонних библиотеках NVDA;
    6. Добавление пользовательских DLL библиотек в NVDA.
  6. GUI NVDA. Виджеты:
    1. Библиотека «wxPython»;
    2. Графический режим в NVDA;
    3. Правила создания и открытия «wx.Frame» и «wx.Dialog» в NVDA скриптах;
    4. Элементы управления в «wxPython».
  7. GUI NVDA, расширенные виджеты и сайзеры:
    1. Расширенные элементы управления в «wxPython»;
    2. Меню бар, сетка и дерево;
    3. Работа с Сайзером.
  8. GUI NVDA. Правила оформления дополнений:
    1. Графическая пользовательская библиотека NVDA;
    2. Авторское право;
    3. Правила и ограничения внедрения в своё дополнение чужого кода;
    4. Недопустимые действия в дополнениях NVDA;
    5. Безопасный режим;
    6. Локализация;
    7. Справка, документация дополнения.GUI NVDA. Правила оформления дополнений.

Примечание: после проведения курса, предполагается проведение итогового контроля.

Ожидаемые результаты

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