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

Правила
Создайте приложение, которое адаптируется к экранам любого размера и состояниям устройств.
Пользовательский интерфейс
| Идентификатор правила | Идентификаторы тестов | Описание |
|---|---|---|
| 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 | Наведите указатель мыши или сенсорной панели на интерактивный элемент интерфейса, чтобы активировать его состояние наведения. |