Сделайте приложения более доступными

Постарайтесь сделать ваше Android-приложение доступным для всех, включая людей с ограниченными возможностями.

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

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

Увеличить видимость текста

Для каждого набора текста в вашем приложении мы рекомендуем, чтобы цветовой контраст (или разница в воспринимаемой яркости между цветом текста и цветом фона за текстом) превышал определенный порог. Точный порог зависит от размера шрифта текста и от того, выделен ли текст жирным шрифтом:

  • Если размер текста меньше 18 пунктов или если текст выделен жирным шрифтом и размером менее 14 пунктов, установите коэффициент цветового контраста как минимум 4,5:1.
  • Для всего остального текста установите коэффициент цветового контраста не менее 3:1.

На следующем изображении показаны два примера цветового контраста текста и фона:

Картинки с текстом
Рисунок 1. Цветовой контраст ниже рекомендуемого (слева) и достаточный (справа).

Чтобы проверить контрастность цвета текста и фона в вашем приложении, воспользуйтесь онлайн-программой проверки цветового контраста или приложением Accessibility Scanner .

Используйте большие и простые элементы управления

Пользовательский интерфейс вашего приложения проще использовать, если его элементы управления легче видеть и нажимать. Мы рекомендуем, чтобы каждый интерактивный элемент пользовательского интерфейса имел область фокусировки или целевой размер касания не менее 48dpx48dp. Больше — еще лучше.

Чтобы данный элемент пользовательского интерфейса имел достаточно большой целевой размер сенсорного экрана, должны выполняться оба следующих условия:

Значения заполнения позволяют видимому размеру объекта быть меньше 48dpx48dp, сохраняя при этом рекомендуемый целевой размер касания.

В следующем фрагменте кода показан элемент с рекомендуемым целевым размером сенсорного экрана:

<ImageButton ...
    android:paddingLeft="4dp"
    android:minWidth="40dp"
    android:paddingRight="4dp"

    android:paddingTop="8dp"
    android:minHeight="32dp"
    android:paddingBottom="8dp" />

Опишите каждый элемент пользовательского интерфейса

Для каждого элемента пользовательского интерфейса в вашем приложении добавьте описание, описывающее назначение элемента. В большинстве случаев это описание включается в атрибут contentDescription элемента, как показано в следующем фрагменте кода:

<!-- Use string resources for easier localization. -->
<!-- The en-US value for the following string is "Inspect". -->
<ImageView
    ...
    android:contentDescription="@string/inspect" />

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

  • Не указывайте тип элемента пользовательского интерфейса в описании контента. Программы чтения с экрана автоматически объявляют тип и описание элемента. Например, если нажатие кнопки приводит к выполнению действия «Отправить» в вашем приложении, сделайте описание кнопки "Submit" , а не "Submit button" .

  • Каждое описание должно быть уникальным. Таким образом, когда пользователи программ чтения с экрана сталкиваются с повторяющимся описанием элемента, они правильно распознают, что фокус находится на элементе, который уже находился в фокусе ранее. В частности, каждый элемент в группе представлений, такой как RecyclerView должен иметь отдельное описание. Каждое описание должно отражать уникальное для данного элемента содержимое, например название города в списке мест.

  • Если minSdkVersion вашего приложения имеет значение 16 или выше, вы можете установить для атрибута android:importantForAccessibility значение "no" для графических элементов, которые используются только для декоративного эффекта.

Дополнительные ресурсы

Чтобы узнать больше о том, как сделать ваше приложение более доступным, посетите следующие дополнительные ресурсы:

Кодлабы

Сообщения в блоге