Уровень 2 – адаптивная оптимизация

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

Изображение трех уровней качества в виде вертикально расположенных слоев с выделенным средним уровнем.

Правила

Создайте приложение, которое адаптируется к экранам любого размера и состояниям устройств.

Пользовательский интерфейс

Идентификатор правила Идентификаторы тестов Описание
Responsive_adaptive_layouts T-Layout_Flow

В приложении есть адаптивные макеты для всех размеров экрана. Все макеты адаптивны (см. раздел Переход на адаптивные макеты). Реализация адаптивных макетов определяется классами размеров окон.

Интерфейс приложения может включать:

  • Современные панели навигации, которые расширяются в окнах большего размера.
  • Макеты сетки, в которых количество столбцов меняется в зависимости от размера окна.
  • Столбцы текста на больших экранах
  • Панели в конце, которые по умолчанию открыты на экранах компьютеров и закрыты на экранах меньшего размера.

Создавайте макеты с несколькими панелями (где это уместно), чтобы использовать преимущества больших экранов. Подробнее о канонических макетах…

Для приложений Jetpack Compose используйте адаптивные макеты (например, ListDetailPaneScaffold), чтобы создавать многопанельные интерфейсы. Для устаревших приложений, основанных на действиях, встраивание действий позволяет использовать макеты с несколькими панелями, отображая действия рядом друг с другом.

UI_Secondary_Elements T-Layout_Flow

Модальные окна, контекстные меню и другие второстепенные элементы правильно форматируются на экранах разных типов и при разных состояниях устройств. Например:

  • На больших экранах нижние экраны не занимают всю ширину. (Задайте максимальную ширину, чтобы избежать растягивания.) См. раздел Адаптивный макет в статье Нижние экраны.
  • На больших экранах кнопки не занимают всю ширину. Подробнее об адаптивном дизайне в разделе Кнопки…
  • Текстовые поля и окна не растягиваются на всю ширину больших экранов. Подробнее об адаптивном дизайне в разделе Текстовые поля.
  • Небольшие меню редактирования или модальные окна не закрывают весь экран и максимально сохраняют контекст для пользователя. Подробнее о меню…
  • Контекстные меню появляются рядом с выбранным элементом. Подробнее о контекстных меню…
  • Навигационные панели заменяют панели навигации для лучшей эргономики на больших экранах. Подробнее о боковой панели навигации…
  • Панели навигации заменены на расширенные панели навигации. Подробнее о панели навигации…
  • Диалоговые окна обновлены до последней версии компонента Material. Подробнее о диалоговых окнах…
  • Изображения показываются в правильном разрешении, не растянуты и не обрезаны.
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 Наведите указатель мыши или сенсорной панели на интерактивный элемент интерфейса, чтобы активировать его состояние наведения.