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

Правила
Создайте приложение, которое адаптируется к экранам любого размера и состояниям устройств.
Пользовательский интерфейс
| Идентификатор рекомендации | Идентификаторы тестов | Описание |
|---|---|---|
| Responsive_adaptive_layouts | T-Layout_Flow | В приложении есть адаптивные макеты для всех размеров экрана. Все макеты адаптивные (см. статью Как перейти на адаптивные макеты). Реализация адаптивных макетов определяется классами размеров окон. Интерфейс приложения может включать:
Создавайте макеты с несколькими панелями (где это уместно), чтобы использовать преимущества большого экрана. Подробнее о канонических макетах… Для приложений Jetpack Compose используйте адаптивные макеты (например, |
| UI_Secondary_Elements | T-Layout_Flow | Модальные окна, контекстные меню и другие второстепенные элементы правильно форматируются на экранах всех типов и при всех состояниях устройств. Например:
|
| Touch_Targets | T-Touch_Targets | Область прикосновения не менее 48 dp. Ознакомьтесь с рекомендациями по размерам целевых объектов в Material Design. |
| Drawable_Focus | T-Drawable_Focus | Для интерактивных графических объектов создается состояние фокуса. Специальный графический объект – это любой визуальный элемент интерфейса, не предоставляемый фреймворком Android. Если пользователи могут взаимодействовать с пользовательским объектом Drawable, он должен быть доступен для фокусировки, когда устройство не находится в режиме сенсорного экрана, и должно быть очевидно визуальное указание на состояние фокусировки. |
Клавиатура, мышь и сенсорная панель
| Идентификатор рекомендации | Идентификаторы тестов | Описание |
|---|---|---|
| Keyboard_Navigation | T-Keyboard_Navigation | Основные рабочие процессы в приложении поддерживают навигацию с помощью клавиатуры, в том числе клавиш Tab и стрелок. Подробнее о том, как создавать приложения с поддержкой специальных возможностей… |
| Keyboard_Shortcuts | T-Keyboard_Shortcuts | В приложении поддерживаются быстрые клавиши для распространенных действий, таких как выбор, вырезание, копирование, вставка, отмена и повтор. Подробнее о клавиатуре, мыши и сенсорной панели… |
| Keyboard_Media_Playback | T-Keyboard_Media_Playback | Для управления воспроизведением можно использовать клавиатуру, например пробел для запуска или приостановки. |
| Keyboard_Send | T-Keyboard_Send | Клавиша Ввод на клавиатуре выполняет функцию отправки в приложениях для общения. |
| Keyboard_Exit | T-Keyboard_Exit | Клавиша Esc на клавиатуре выполняет функцию выхода, которая завершает или отменяет действие, например:
|
| Context_Menus | T-Context_Menus | Контекстное меню можно открыть стандартным нажатием правой кнопки мыши или касанием сенсорной панели двумя пальцами. |
| Content_Zoom | T-Content_Zoom | Контент приложения можно масштабировать с помощью колеса прокрутки мыши (удерживая клавишу Control или Ctrl) или сведением и разведением пальцев на сенсорной панели. |
| Hover_States | T-Hover_States | У интерактивных элементов интерфейса есть состояние наведения (где применимо), указывающее, что с элементом можно взаимодействовать с помощью мыши или сенсорной панели. |
Тесты
Чтобы убедиться, что ваше приложение оптимизировано и реагирует на все конфигурации дисплея, выполните следующие тесты.
Пользовательский интерфейс
| Идентификатор теста | Идентификаторы правил | Описание |
|---|---|---|
| T-Layout_Flow |
Responsive_adaptive_layouts, UI_Secondary_Elements |
Запустите приложение на устройствах с разными размерами экрана, включая телефоны, складные телефоны, маленькие и большие планшеты, а также компьютеры. Запустите приложение в многооконном режиме на устройствах. Убедитесь, что макет приложения адаптируется к разным размерам экрана и окна. Проверьте, расширяются ли и сужаются ли панели навигации, масштабируется ли количество столбцов в макетах сетки, перетекает ли текст в столбцы и т. д. Проверьте, чтобы элементы интерфейса были отформатированы как с точки зрения эстетики, так и с точки зрения функциональности. Если в устаревших приложениях используется встраивание действий, проверьте, отображаются ли действия рядом друг с другом на больших экранах и друг над другом на маленьких. |
| T-Touch_Targets | Touch_Targets | Убедитесь, что области прикосновения имеют одинаковый, доступный размер и положение и не скрыты и не заслонены другими элементами интерфейса для всех размеров и конфигураций дисплея. Подробнее о Сканере доступности… |
| T-Drawable_Focus | Drawable_Focus | На каждом экране приложения, где есть интерактивный объект Drawable, убедитесь, что на него можно установить фокус с помощью внешней клавиатуры, D-pad или другого устройства, позволяющего устанавливать фокус на элементы интерфейса. Убедитесь, что элемент в фокусе выделен визуально. Дополнительную информацию можно найти в документации по фокусу в Compose. |
Клавиатура, мышь и сенсорная панель
| Идентификатор теста | Идентификаторы правил | Описание |
|---|---|---|
| T-Keyboard_Navigation | Keyboard_Navigation | Перемещайтесь по компонентам приложения, на которых можно фокусироваться, с помощью клавиши Tab и клавиш со стрелками на внешней клавиатуре. |
| T-Keyboard_Shortcuts | Keyboard_Shortcuts | Используйте сочетания клавиш на внешней клавиатуре, чтобы выбирать, вырезать, копировать, вставлять, отменять и повторять действия. |
| T-Keyboard_Media_Playback | Keyboard_Media_Playback | С помощью внешней клавиатуры можно запускать, останавливать, приостанавливать, перематывать назад и вперед воспроизведение медиаконтента. |
| T-Keyboard_Send | Keyboard_Send | Для отправки данных используйте клавишу Ввод на внешней клавиатуре. |
| T-Keyboard_Exit | Keyboard_Exit | Используйте клавишу Esc на внешней клавиатуре, чтобы выйти. Убедитесь, что ключ выполняет следующие действия (если применимо):
|
| T-Context_Menus | Context_Menus | Чтобы открыть контекстное меню интерактивных элементов, нажмите второстепенную кнопку мыши или дважды коснитесь сенсорной панели. |
| T-Content_Zoom | Content_Zoom | Используйте колесо прокрутки мыши (в сочетании с клавишей Control или Ctrl) и жесты сведения и разведения пальцев на сенсорной панели, чтобы увеличивать и уменьшать масштаб контента. |
| T-Hover_States | Hover_States | Наведите указатель мыши или сенсорной панели на интерактивный элемент интерфейса, чтобы активировать его состояние наведения. |