---
description: 'Ресурсы для разработчиков'
params:
  path: /books/accessibility/development/
part: 'Часть II. Зрение'
prev: books/accessibility/desktop
showBookMenu: 'true'
tags: ["Accessibility", "Development"]
title: 'Глава 6. Разработка'
weight: 9
---

[[development]]
= Разработка
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 6
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/accessibility/development/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[devel-intro]]
== Введение

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

[[devel-colors]]
== Цвета

Не предполагайте, что пользователи могут различать все (или даже любые) цвета, используемые в вашей программе. Хотя официальная статистика о распространенности дальтонизма отсутствует, по оценкам, примерно 5% населения страдает от той или иной его формы, будь то частичная или полная.

[[devel-color-guidelines]]
=== Руководство по цветам

Избегайте использования цвета как единственного способа передачи информации. Если цвет необходимо использовать, предоставьте простой и хорошо документированный метод настройки цветовых параметров. По возможности обеспечьте поддержку переменной окружения `$NO_COLOR` для учёта предпочтений пользователей.

[[devel-color-checkers]]
=== Проверка цветов

Пакет package:graphics/kontrast[] предоставляет графическую утилиту Kontrast для проверки, достаточно ли различимы цветовые комбинации для удобочитаемости и доступности. Для установки:

[source, shell]
....
# pkg install kontrast
....

[[devel-cli]]
== Интерфейс командной строки

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

Дальке, Карл. _Программы с командной строкой для слепых_. Доступно по адресу: http://www.eklhad.net/philosophy.html. В этой статье рассматривается концепция представления информации в одном измерении и затрагиваются проблемы доступности, присущие программам, разработанным исключительно для зрячих пользователей.

Сампат, Х., Меррик, А., и Маквин, А. (2021). Доступность интерфейсов командной строки. В материалах конференции CHI по человеческому фактору в вычислительных системах (CHI '21). ACM. Доступно по адресу: https://dl.acm.org/doi/fullHtml/10.1145/3411764.3445544. В этой статье представлены рекомендации и распространенные ошибки, которых следует избегать при проектировании интерфейсов командной строки, используемых пользователями экранных читалок.

[[devel-libs]]
== Библиотеки (Libraries)

[[devel-at-spi]]
=== Gnome

AT-SPI (Assistive Technology Service Provider Interface), package:accessibility/at-spi2-core[], представляет собой фреймворк, который устанавливает канал связи между приложениями и вспомогательными технологиями. Для установки выполните:

[source, shell]
....
# pkg install at-spi2-core
....

AT-SPI предлагает широкий спектр возможностей. Для получения дополнительной информации обратитесь к следующим ресурсам: https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/main/README.md[README], https://gnome.pages.gitlab.gnome.org/at-spi2-core/atk/[Вики Atk], https://gnome.pages.gitlab.gnome.org/at-spi2-core/libatspi/[Вики AT SPI] и https://wiki.gnome.org/Accessibility[Вики команды доступности GNOME].

[TIP]
====
Доступны некоторые обёртки: package:accessibility/rubygem-atk[] (Ruby), package:accessibility/py-atspi[] (Python) и package:accessibility/atkmm[] (C++).
====

[[devel-qt]]
=== QT

Пакет package:accessibility/libqaccessibilityclient[] устанавливает канал связи между приложениями и вспомогательными технологиями. В частности, он обеспечивает мост между приложениями, созданными с использованием Qt, и фреймворком AT-SPI crossref:development[devel-at-spi,описанным ранее]. Полную документацию смотрите в https://api.kde.org/libqaccessibilityclient/html/index.html[Справочнике по API] и https://github.com/KDE/libqaccessibilityclient[официальном репозитории]. Для установки:

[source, shell]
....
# pkg install libqaccessibilityclient
....

Пакеты библиотек package:accessibility/qt5-speech[] и package:accessibility/qt6-speech[] предоставляют доступ к функции преобразования текста в речь (в частности, к пакету package:accessibility/speech-dispatcher[]). Документация доступна по адресам https://doc.qt.io/archives/qt-5.15/qtspeech-index.html и https://doc.qt.io/qt-6/qttexttospeech-index.html. Для установки выполните:

[source, shell]
....
# pkg install qt5-speech
# pkg install qt6-speech
....

=== Синтез речи

Пакет package:accessibility/speech-dispatcher[] предоставляет простой, высокоуровневый и независимый от устройства слой для доступа к синтезаторам речи. Для установки выполните:

[source, shell]
....
# pkg install speech-dispatcher
....

Для получения подробной документации обратитесь к официальному веб-сайту Speech Dispatcher: https://freebsoft.org/speechd.

[TIP]
====
Обёртка для библиотеки на языке Python предоставляется пакетом package:accessibility/py-speech-dispatcher[].
====

[[devel-liblouis]]
=== Liblouis

Пакет package:devel/liblouis[] предоставляет API для перевода многих языков в шрифт Брайля и обратно. Для установки выполните:

[source, shell]
....
# pkg install liblouis
....

Библиотека предоставляет множество функций, https://liblouis.io/documentation/[документированных на сайте проекта liblouis].

[TIP]
====
Liblouis также предоставляет Python API, https://liblouis.io/documentation/liblouis.html#Python-bindings[привязки Python].
====

[[devel-tools]]
== Инструменты

Пакет package:accessibility/accerciser[] предоставляет инструмент проверки доступности для приложений, разработанных для окружения рабочего стола extref:{handbook}desktop/#gnome-environment[GNOME]. Для его установки выполните:

[source, shell]
....
# pkg install accerciser
....

Для получения подробной информации об использовании и возможностях обратитесь к справочной странице man:accerciser[1]. Дополнительная документация доступна в https://gitlab.gnome.org/GNOME/accerciser/-/blob/master/README.md[REAMDE.md] и https://help.gnome.org/users/accerciser/stable/index.html.en[Руководстве пользователя Accerciser].
