Обзор инструментов NVDA API

(По материалам официального сайта программы)
Дата публикации:2011
Twitter Facebook Vkontakte

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

Данный API-клиент реализован в виде динамической библиотеки, функции которой могут быть вызваны из языка программирования, поддерживающего поиск и вызов любого символа в DLL (например, ctypes в Python), либо посредством традиционных способов загрузки и связывания DLL (например, в языках C и C++).

Загрузить NVDA Controller можно по ссылкеhttp://www.nvda-project.org/nvdaControllerClient/nvdaControllerClient_20100219.7z. Размер файла 121 Кб.

Архив включает:

API-клиент NVDA Controller распространяется на некоммерческой основе на условиях лицензии LGPL 2.1, с которой можно ознакомиться в файле "license.txt" поставляемого архива. В общих словах, это означает, что вы можете использовать NVDA Controller в любом приложении. Однако если вы вносите изменения в исходный код NVDA Controller, то должны предоставить эти изменения сообществу NVDA на условиях той же лицензии.

NVDA Controller поможет разработчикам программного обеспечения, заинтересованным в поддержке специальных возможностей, реализовать в своих продуктах максимально тесное взаимодействие с набирающим всё большую популярность свободным screenreader'ом NVDA. Однако разработчики должны понимать оборотную сторону такого решения, ориентированного исключительно на одну программу экранного доступа. Более универсальным (и более трудоемким) является реализация в приложениях поддержки технологий доступа MSAA и UI-Automation, что обеспечит доступность приложений не для одного, а для большинства современных screenreader'ов на платформе MS Windows.

Поддерживаемые функции

На данный момент NVDA Controller имеет версию 1.0 и поддерживает четыре функции. Все функции возвращают ноль в случае успешного выполнения и ненулевое значение в случае ошибки. Ошибка может означать, что не удалось связаться с NVDA или что функция была вызвана некорректным образом. Возвращаемые функциями коды ошибок являются стандартными кодами ошибок Windows.

Пример использования

Ниже приведен пример использования клиентского API NVDA Controller в консольном приложении, написанном на языке программирования C. Это приложение в качестве параметра командной строки принимает текст, который озвучивает средствами NVDA и отображает на брайлевском дисплее. Для простоты не выполняются некоторые проверки на ошибки.

#define UNICODE
#include <windows.h>
#include "nvdaController.h"

/* Подключаем библиотеку импорта */
/* То же самое можно сделать в настройках проекта */
/* используемой среды разработки */
#pragma comment(lib, "nvdaControllerClient32.lib")

int wmain(int argc, wchar_t* argv[])
{
	if (argc < 2)
	{
		MessageBox(0,L"Не задан текст для вывода!",L"Ошибка",0);
		return 1;
	}
	
	/* Проверяем, запущена ли программа NVDA */
	/* и пытаемся связаться с ней */
	if(0 != nvdaController_testIfRunning())
	{
		MessageBox(0,L"Не удалось связаться с NVDA!",L"Ошибка",0);
		return 2;
	}
	
	/* Вывод речевого сообщения */
	nvdaController_speakText(argv[1]);
	
	/* Вывод сообщения на брайлевский дисплей */
	nvdaController_brailleMessage(argv[1]);
	return 0;
}

После компиляции и сборки приложения (например, под именем test.exe) запустите интерпретатор командной строки cmd.exe и, перейдя в каталог, где расположен файл test.exe, наберите:

test.exe "Привет, мужики!"


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