На одном Android-устройстве текст на кнопке обрезан, а на другом отображается полностью. Как проверить, что причина связана с системным масштабом шрифта, а не только с вёрсткой приложения?
Нужно повторить сценарий при разных системных размерах шрифта и проверить, меняется ли дефект вместе с масштабом текста. Если при стандартном размере проблема исчезает, а при увеличенном стабильно воспроизводится, вероятен конфликт адаптивной типографики с ограничениями компонента; затем его следует подтвердить на нескольких разрешениях, плотностях и версиях ОС.
Системное масштабирование текста появилось как часть требований доступности: пользователю должно быть возможно увеличить шрифт без ручной настройки каждого приложения. На iOS эту задачу решает механизм Dynamic Type, а на Android размер шрифта задаётся системными настройками и влияет на элементы, использующие масштабируемые текстовые размеры.
Изначально интерфейсы часто проектировали под один фиксированный размер текста и одно устройство. Адаптивная типографика потребовала проверять не только геометрию экрана, но и изменение текстовых метрик при тех же ширине и высоте дисплея.
Одинаковая строка занимает разную высоту и ширину при разных настройках шрифта. Если кнопка имеет фиксированную высоту, у текста задано жёсткое ограничение строк или не предусмотрен перенос, увеличение шрифта может привести к обрезанию, наложению элементов и потере доступности.
При этом дефект может ошибочно выглядеть как проблема конкретной модели устройства. Различия в размере экрана, плотности пикселей, шрифте ОС и настройках доступности способны менять результат даже при неизменной версии приложения.
Сначала зафиксируйте базовые условия: модель устройства, версию ОС, ориентацию, язык, системный размер шрифта и масштаб интерфейса. Затем изменяйте только размер шрифта и проверяйте, меняется ли высота текста, перенос строк и доступное содержимое кнопки.
Если дефект зависит от системного масштаба, проверьте, использует ли приложение масштабируемые текстовые стили, поддерживает ли несколько строк и может ли контейнер увеличиваться по содержимому. Важно оценивать не только сам текст, но и соседние элементы: увеличение одной надписи может вытолкнуть другую за пределы экрана.
Следующий шаг — тест на границах: минимальный и увеличенный размеры шрифта, длинные локализованные строки, жирное начертание, альбомная ориентация и маленький экран. Повторение на другой версии ОС помогает отделить ошибку приложения от различий в системном рендеринге, но не отменяет исправления в приложении.
Фиксированный размер контейнера иногда допустим для строго ограниченного дизайна, однако это снижает доступность и повышает риск обрезания. Предпочтительнее дать содержимому изменять размер, явно определить допустимый перенос и отдельно проверить визуальные и функциональные требования к кнопке.
В форме оплаты на небольшом Android-устройстве подпись кнопки обрезалась только у пользователей с увеличенным системным шрифтом. Команда рассмотрела три варианта: уменьшить текст всегда, отключить масштабирование в этом экране или сделать кнопку адаптивной.
Постоянное уменьшение текста сохраняло геометрию, но ухудшало читаемость. Отключение масштабирования устраняло симптом, однако противоречило требованиям доступности и создавало особое поведение приложения. Выбрали адаптивную высоту кнопки, перенос текста на две строки и проверку соседних элементов.
После изменения сценарий проверили на нескольких размерах экрана, при увеличенном шрифте и с длинными переводами. Обрезание исчезло, а визуальная сетка сохранилась в стандартном режиме; компромиссом стало увеличение высоты кнопки в отдельных конфигурациях.
Дополнительный вопрос: Достаточно ли проверить только настройку размера шрифта?
Ответ: Нет. На результат влияют также язык и длина строки, начертание, системный шрифт, масштаб интерфейса, ориентация и доступная ширина контейнера. Поэтому изменение только одного параметра может скрыть дефект, который проявится у пользователя с другим языком или на другом размере экрана.
Дополнительный вопрос: Чем отличается проверка масштабирования текста от проверки разных разрешений экрана?
Ответ: Разрешение и плотность меняют физическое представление интерфейса и доступное пространство, а масштаб шрифта меняет метрики текста при той же логической геометрии. Эти факторы могут проявляться одновременно, поэтому их нужно варьировать раздельно, иначе причина обрезания останется неустановленной.
Дополнительный вопрос: Почему тест может пройти на одном устройстве с увеличенным шрифтом, но провалиться на другом при той же настройке?
Ответ: У устройств могут отличаться логическая ширина экрана, системный шрифт, правила округления размеров и реализация стандартных компонентов ОС. Кроме того, приложение может использовать разные ветки вёрстки для компактных и обычных экранов. Поэтому настройка шрифта задаёт условие теста, но не гарантирует одинаковый результат без проверки совместимой комбинации устройства, ОС и ориентации.