Корпорацией Google опубликован предварительный выпуск следующей версии открытой мобильной платформы Android - Android P Developer Preview. Помимо прочих изменений и доработок, Android P также содержит и ряд усовершенствований, ориентированных на улучшение поддержки функций для пользователей с ограниченными возможностями. Все заявленные на текущий момент усовершенствования функциональности доступности носят инфраструктурный характер, то есть предоставляют дополнительные возможности для разработчиков. Насколько они будут реализованы на практике и окажутся реально полезны для конкретных пользователей зависит уже от разработчика каждого конкретного приложения и конкретной службы доступности.
В частности, на момент первой бета-версии Android P, реализованы следующие усовершенствования:
- Появились новые семантические атрибуты для элементов интерфейса, позволяющие сделать навигацию при помощи вспомогательных технологий ещё более функциональной:
- Службы доступности теперь могут легко отслеживать обновление конкретной части экрана и обрабатывать эти ситуации за счёт того, что такие области теперь получили атрибуты нового типа accessibility pane titles. К таким областям можно обратиться и получить детальную информацию об их изменениях. Для установки данной области используется атрибут android:accessibilityPaneTitle, а для его изменения метод setAccessibilityPaneTitle().
- В интерфейсах, состоящих из нескольких логически обособленных областей, можно задать заголовки, отделяющие одну область от другой, а пользователь получит возможность быстрого перехода к нужному заголовку, минуя прочее содержимое. Для установки навигационных заголовков используется атрибут android:accessibilityHeading со значением true для экземпляра элемента View, содержащего его текст.
- Появилась возможность объединения нескольких элементов интерфейса в единый фокусируемый службой доступности объект без побочных эффектов для клавиатурной навигации. Ранее, когда разработчику интерфейса требовалось представить несколько элементов View как единое целое, ему приходилось делать каждый из них нефокусируемым, после чего объединять их в общую группу и делать фокусируемой уже её при помощи атрибута android:focusable. Это обеспечивало необходимый эффект, но приводило к фокусируемости таких областей при навигации с клавиатуры. Чтобы устранить нежелательные побочные эффекты для клавиатурной навигации, введён новый атрибут android:screenReaderFocusable. С точки зрения поведения фокуса доступности он работает аналогично android:focusable, но не затрагивает навигацию с клавиатуры.
- Появилось расширенное управление функциями дополнительной информативности служб доступности, а также новые возможности для самих служб доступности:
- Разработчик теперь может самостоятельно управлять текстом и поведением подсказок служб доступности, выводящихся на конкретных элементах интерфейса. Для задания текста подсказки используется метод getTooltipText(), а для показа и скрытия подсказок на элементах View действия ACTION_SHOW_TOOLTIP и ACTION_HIDE_TOOLTIP.
- Было добавлено два новых класса служб доступности. Теперь они смогут управлять блокировкой экрана и делать скриншоты, за что отвечают действия GLOBAL_ACTION_LOCK_SCREEN и GLOBAL_ACTION_TAKE_SCREENSHOT соответственно.
- Расширены возможности по отслеживанию изменений в окнах. Когда приложение перерисовывает содержимое нескольких окон, возникает событие TYPE_WINDOWS_CHANGED. Для отслеживания произведённых изменений предназначен API getWindowChanges(). Теперь, в мультиоконном режиме, каждое окно создаёт отдельный набор событий. Метод getSource() возвращает корневой вид окна, связанный с конкретным событием. Если приложение определило accessibility pane titles для его View, то служба может распознать, когда элемент обновляется. Когда возникает событие TYPE_WINDOW_STATE_CHANGED, следует использовать новые типы, возвращаемые getContentChangeTypes(), чтобы определить, как именно изменилось окно. Например, данный механизм теперь может определить, когда область получила новый заголовок, или когда она исчезла.
В настоящий момент доступна публичная бета-версия системы Android P Developer Preview, предназначенная для разработчиков. Существует специальная программа бета-тестирования, в рамках которой тестовую ветку системы можно установить и поддерживать в актуальном виде через штатный интерфейс установки обновлений OTA без необходимости ручной замены прошивки, требующей зрительного контроля. Бета-версия Android P доступна для устройств Pixel, Pixel XL Pixel 2 и Pixel 2 XL.
Стабильная версия для конечных пользователей ожидается в третьем квартале 2018 года. Перечень усовершенствований специальных возможностей к тому моменту может быть дополнен или скорректирован. Кроме того, к нему могут присоединиться доработки конкретных служб доступности, эксклюзивные именно для версии Android P.
Социальные сети