Метки контента

Общая информация

Метки контента позволяют пользователям с ограниченными возможностями распознавать элементы интерфейса при помощи программы чтения с экрана.

Если информация передается в графическом виде, метки контента могут содержать текстовое описание элемента или связанного с ним действия.

Без меток контента некоторым пользователям будет сложно определять назначение элементов интерфейса и взаимодействовать с ними.

Реализация

Определенные типы представлений (View) в интерфейсе должны содержать метки контента, указывающие на назначение представлений или связанные с ними действия.

Присвоение меток

android:contentDescription

При использовании ImageView, ImageButton, CheckBox или другого представления (View) с графической передачей данных присваивайте метки контента с помощью атрибута android:contentDescription.

Некоторые метки контента зависят от информации, доступной только во время выполнения, или от значения представления (View), меняющегося с течением времени. Например, во время прослушивания музыки назначение кнопки "Воспроизвести" меняется на "Приостановить". В этом случае используйте View#setContentDescription(CharSequence contentDescription), чтобы метка контента обновлялась в нужное время.

Как правило, программа чтения с экрана озвучивает класс ViewGroup, совмещая метки контента дочерних представлений (View). Чтобы переопределить это правило и добавить собственное описание объекта, а также его неактивных дочерних представлений (View), задайте атрибут contentDescription в классе ViewGroup. При этом вам потребуется включить метки контента дочерних представлений (View) в атрибут contentDescription для ViewGroup.

android:hint

Атрибут android:hint указывает на назначение текстовых полей EditText и заполненных полей TextView. Не используйте атрибут android:contentDescription в качестве описания текстовых полей (View).

android:labelFor

Атрибут android:labelFor указывает, что представление (View) должно выполнять функцию метки контента для другого представления (View).

Исключения

Метки контента не следует добавлять в следующих случаях:

  • Текст, обрабатываемый в классе TextView или его подклассах, становится доступен программам чтения с экрана автоматически. При этом дополнительные метки контента не требуются.
  • Изображения не передают информацию в графическом виде или выполняют декоративную функцию. В этом случае задайте значение "@null" для атрибута android:contentDescription или "no" для атрибута android:importantForAccessibility.

Дополнительная информация о реализации меток контента содержится в обучающем курсе для разработчиков Android и руководстве по использованию API.

Дизайн

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

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

Дополнительная информация приведена в руководстве по реализации Material Design.

Тестирование

Убедитесь, что в интерфейсе присутствуют все метки контента. Вот как проверить это вручную:

  1. Включите TalkBack.
  2. Запустите приложение.
  3. С помощью жестов последовательно выделяйте элементы на экране.
  4. Если TalkBack не озвучивает выделенный элемент или определяет его как "Без названия", значит, метка контента отсутствует.

Пропущенные метки контента можно выявить в ходе автоматического тестирования. Чтобы проверить приложение на устройстве вручную, воспользуйтесь Сканером доступности для Android. Для автоматического тестирования включите проверку доступности в Espresso и Robolectric.

Поиск
Удалить поисковый запрос
Закрыть поиск
Приложения Google
Главное меню
Поиск по Справочному центру
true
717068
false