Введение
Заполнение анкет — основная задача для большинства работников здравоохранения, использующих мобильные приложения для здоровья.
Ввод данных может быть затруднен и случаются ошибки. Наша цель с помощью библиотеки структурированного сбора данных (SDC) и рекомендаций по проектированию — дать вам возможность улучшить пользовательский опыт ввода данных и качество собранных данных.
В этом разделе рассматриваются четыре темы:
Макет и навигация
Длинная прокрутка и постраничный макет

Android FHIR SDK предлагает два варианта макета на выбор:
- Длинная прокрутка (по умолчанию)
- с разбивкой на страницы
Анкета с длинной прокруткой отображает все вопросы на одной странице, и пользователи переходят к каждому вопросу, прокручивая ее.
Анкета с постраничной разбивкой отображает содержимое на отдельных страницах. Связанные вопросы или поля ввода можно сгруппировать на одной странице. Кнопки «Назад» и «Далее» закреплены внизу страницы для перемещения между страницами.
Узнайте, как создать анкету с постраничной разбивкой на Github.
Какую планировку выбрать?
Каждый вариант планировки имеет свои преимущества и недостатки. Ниже приведены некоторые атрибуты каждого типа макета, которые следует учитывать при выборе используемого макета.
Длинная прокрутка | с разбивкой на страницы | |
---|---|---|
Скорость навигации | Быстрее перемещаться | Медленнее навигация |
Точность навигации | Менее точная навигация | Более точная навигация |
Перефокусируйтесь на вопрос после переключения задачи | Трудно переориентироваться после прерывания | Легче переориентироваться после прерывания |
Заполнение цифровой анкеты после визита (копирование с бумаги) | Легче копировать с бумаги | Усложняется копирование с бумаги |
Маленькие экраны | Хуже для маленьких экранов | Лучше для маленьких экранов |
Доступность | Хуже с точки зрения доступности. Трудно ориентироваться. | Лучше для доступности. Отдельные экраны, которые можно обрабатывать с помощью программ чтения с экрана, преобразования текста в речь и других технологий. |
Место для инструкций и пояснений | Хуже для указаний и инструкций | Лучше для руководства и инструкций |
Длинная прокрутка

Нумеруйте вопросы, чтобы было легче ориентироваться в макете одной страницы.

Уменьшите размер шрифта заголовков вопросов при использовании длинной прокрутки, чтобы на экране было видно больше контента. Пример: длина длинной прокрутки составляет 16 пикселей. Разбивка на страницы составляет 28 пикселей.
Пагинация

Клавиатуры, раскрывающиеся списки и другие компоненты занимают место на странице, поэтому старайтесь размещать по одному вопросу на странице.

Содержимое должно быть видно над сгибом.

Пример. Все эти три текстовых поля относятся к альтернативной информации о контактном лице, поэтому они сгруппированы на одной странице.

Избегайте группировки несвязанного контента на одной странице, чтобы избежать путаницы.
Индикатор прогресса
Индикатор прогресса отражает прогресс, достигнутый в вопроснике.
Включите индикатор прогресса в длинные анкеты, чтобы помочь пользователям ориентироваться и видеть прогресс. Индикаторы прогресса показывают местоположение в анкете и то, сколько еще осталось заполнить.

Расположите сверху над вопросом и привязкой, чтобы он всегда был виден даже при прокрутке.

Вместо этого можно расположить внизу, над кнопками «Назад» и «Далее». С помощью этого макета вы также можете отобразить, на какой странице находится пользователь.
Кнопки навигации
Кнопки навигации (назад, далее) закреплены внизу анкеты. При бесконечной прокрутке или на последней странице анкеты, разбитой на страницы, следующая кнопка называется «Отправить».
Держите кнопки в одном и том же месте и всегда используйте активные кнопки с пометкой их действия, например «Назад» и «Далее».

Всегда отображайте активные кнопки, даже если формы не заполнены. При нажатии «Далее» отобразится всплывающее диалоговое окно с инструкциями по заполнению недостающих полей или ошибкам проверки.

Неактивные кнопки мешают пользователям понять, как решить проблему.

Избегайте кнопок, состоящих только из значков. Всегда маркируйте кнопки описательными действиями.
Вопросы и инструкции

- Название анкеты.
- Индикатор прогресса.
- Заголовок группы.
- Название вопроса.
- Инструкции.
- Поле ввода.
- Формат входа.
- Обязательные поля.
- Помощь.
Заголовок группы
Заголовок группы – это текстовый заголовок, который отображается над заголовками вопросов.
Используйте заголовок группы , чтобы сгруппировать похожие вопросы. Используйте заголовок группы только тогда, когда он добавляет полезную информацию.

Используйте короткое название, чтобы сгруппировать похожие вопросы. Пример: все вопросы, связанные с историей пациента, сгруппированы.

Избегайте сложных заголовков или длинных заголовков, выходящих за одну строку.
Название вопроса
Название вопроса кратко описывает, какая информация запрашивается. Заголовки вопросов имеют самый крупный размер шрифта на странице, чтобы привлечь внимание пользователя к вопросу.
Каждая страница или вопрос должен иметь заголовок вопроса . Делайте названия вопросов короткими или формулируйте их как вопрос.

Короткие заголовки облегчают чтение пользователям.

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

Всегда включайте заголовок вопроса, чтобы пользователям было легче понять, какую информацию им нужно ввести.
инструкции
Инструкции — это необязательное текстовое поле, отображаемое под заголовком вопроса.
Используйте поле инструкций , чтобы объяснить соответствующие инструкции, например, требуется ли вопрос, сколько вариантов выбора можно сделать (один или несколько) и что следует делать пользователям, если они не могут заполнить всю информацию или ответить на вопрос.

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

Используйте инструкции, чтобы пользователи знали, что делать, если они столкнулись с ситуацией, когда не могут заполнить все поля.

Используйте инструкции, чтобы предоставить дополнительный контекст или определения терминов, используемых в названии вопроса.
Текст метки
Текст метки информирует пользователей о том, какая информация запрашивается для текстового поля или раскрывающегося списка. Когда поле выбрано, текст метки перемещается из середины текстового поля вверх.
Каждое текстовое поле и раскрывающийся список должны иметь метку. Текст этикетки должен быть коротким, четким и полностью видимым.

Текст этикетки должен быть коротким, четким и полностью видимым.

Текст метки не должен быть слишком длинным, обрезанным или занимать несколько строк.

Всегда маркируйте текстовое поле, чтобы пользователи знали, какую информацию вводить.
Формат записи
EntryFormat отображается под текстовым полем, чтобы информировать пользователей о том, в каком конкретном формате необходимо ввести данные. Сообщения об ошибках будут отображаться в поле EntryFormat и заменять существующие инструкции EntryFormat.
Используйте EntryFormat для дат, номеров телефонов, единиц измерения и целых чисел.

Покажите формат даты под полем и включите описательную фразу.

Неотображение форматов данных может привести к неправильному вводу данных.

При вводе медицинских диапазонов приведите примеры нормального диапазона. Это может помочь пользователям обнаружить ошибки или числа, выходящие за пределы допустимого диапазона.
Обязательные поля
Обязательные поля указывают, что пользователь должен заполнить поле и не может продвигаться дальше, пока поле не будет заполнено.
Чтобы указать, что поле является обязательным, поставьте звездочку (*) в конце заголовка вопроса. Включите «обязательный вопрос» в поле инструкций, поскольку не всем понятно, что обозначает звездочка (*). Если заголовка вопроса нет, отобразите звездочку (*) в тексте метки.

Отметьте обязательное поле звездочкой (*) и включите письменные инструкции с указанием «обязательного вопроса». Многие не знакомы с тем, что означает звездочка (*), и им было бы полезно получить объяснение.

Не показывайте только звездочку (*) без письменного описания ее значения.

Используйте термины, которые наиболее знакомы вашим пользователям. Пример: «Обязательный» может быть более знакомым термином и использоваться в некоторых странах вместо «Обязательного».

Если большинство вопросов являются обязательными, укажите, какие из них являются необязательными.

Если заголовка вопроса нет, поставьте звездочку в тексте метки.
Помощь
Рядом с названием вопроса отображается значок справки . При нажатии на значок появляется окно справочной информации с дополнительной информацией. Повторное нажатие на значок закроет окно справочной информации.
Это необязательный компонент. Используйте только тогда, когда это полезно для отображения дополнительной информации, которая не обязательно должна быть всегда видна.

Используйте справку для получения информации, которую пользователям может потребоваться просмотреть только один раз или которая предоставляет дополнительную информацию.

Не скрывайте инструкции внутри окна справки, которые должны быть видны всем.
Сбор данных

Когда какой компонент использовать?
Тип ввода данных | Логический выбор | Единый выбор | Большой выбор | Открытый выбор | Падать | Выбор даты | Текстовое поле | Слайдер | Автозаполнение |
---|---|---|---|---|---|---|---|---|---|
Выберите Да или Нет | |||||||||
Выберите один вариант | осторожность | ||||||||
Выберите несколько вариантов | осторожность | ||||||||
Текст | |||||||||
Даты | |||||||||
Числа | осторожность |
Текстовые поля
Текстовые поля указывают, что пользователи могут вводить информацию.
Используйте текстовые поля , когда кому-то нужно ввести в анкету текст, например имя, номер телефона или адрес. Ограничьте ввод данных, требующий ввода текста (с клавиатуры), когда вместо этого можно использовать предварительно заполненный выбор (множественный выбор или одиночный выбор).
Узнайте больше о текстовых полях на сайте Material.io.

Используйте текстовые поля для ввода данных, требующих ввода уникальных слов или цифр.

Избегайте использования произвольных текстовых ответов, если вместо этого это может быть выбор с множественным выбором, раскрывающимся списком или одним выбором.
Одиночный выбор и логический выбор
Одиночный выбор и логический выбор — это элементы управления выбором, которые отображаются в виде переключателей, когда пользователям предлагается выбрать один вариант из вариантов.
Используйте логический выбор , когда есть двоичный выбор «Да» или «Нет». В противном случае используйте компонент с одним выбором . Если в списке более 10 вариантов, используйте раскрывающийся список вместо одного варианта . Раскрывающийся список более плотный и в нем легче ориентироваться, когда есть много вариантов.

Используйте логический выбор, когда доступны варианты «да» и «нет».

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

Избегайте единственного выбора для очень длинных списков (10+). Вместо этого используйте раскрывающийся список.
Выбор даты
Средство выбора даты позволяет пользователям вводить даты как с помощью средства выбора даты в календаре, так и с клавиатуры. Выбор даты календаря активируется при нажатии значка календаря.
Используйте средство выбора календарной даты только для дат, близких к сегодняшней дате, например последней менструации или следующего посещения. В противном случае отдайте предпочтение вводу с клавиатуры таких дат, как дата рождения.

Для ввода дат включите как ввод с клавиатуры (нажатие на текстовое поле), так и выбор даты в календаре (нажатие на значок).

Не включайте средство выбора календарной даты в качестве единственного метода ввода дат рождения. Ориентироваться по месяцу и году сложно.
Падать
Выпадающие меню позволяют пользователям выбирать из нескольких вариантов. Когда пользователь начинает печатать, параметры фильтруются на основе введенных данных. Это может помочь пользователям быстро найти нужный вариант из большого списка.
Выпадающие меню — отличная альтернатива одному выбору , когда список опций очень длинный (более 10 опций), поскольку они занимают меньше места.

Используйте раскрывающийся список при выборе одного параметра в очень длинном списке параметров, например при выборе штата или города.

Не используйте раскрывающийся список, когда было бы проще вводить контент, а не прокручивать все параметры, например возраст.
Большой выбор
Множественный выбор — это элемент управления выбором, который отображается в виде флажков, когда пользователи могут создавать несколько разделов из списка параметров.
Используйте множественный выбор , когда пользователи могут выбирать только из заранее определенного списка вариантов. Если пользователи также могут добавить свой собственный бесплатный ответ, вместо этого используйте компонент открытого выбора . В поле инструкций напишите «Выберите все подходящие», чтобы пользователи знали, что могут выбрать несколько вариантов.

Внешний вид по умолчанию представляет собой контейнер вокруг флажков, чтобы сделать доступную для касания область очевидной.

Избегайте отображения нескольких вариантов в строке: из-за различий в размере экрана телефона и размере текста текст может быть обрезан.
Открытый выбор
Открытый выбор аналогичен множественному выбору, но добавляет пользователю возможность выбрать «Другое» и ввести произвольный текст.
Используйте открытый выбор, когда есть заранее заданный список опций, но пользователи также могут добавлять дополнительные опции. Используйте открытый выбор , когда известно большинство вариантов, но вы предвидите, что некоторые пользователи выберут «Другое» , поскольку ни один из предложенных вариантов не подходит.

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

Избегайте использования, если для большинства ответов потребуется выбрать «Другое» . В этом случае вместо этого используйте текстовое поле или поле абзаца.
Слайдер
Ползунки позволяют пользователям делать выбор из диапазона значений. Ползунок в Android FHIR SDK является дискретным. Дискретный ползунок позволяет пользователям выбирать конкретное значение из заранее определенного диапазона. Для обозначения доступных значений можно использовать деления. Избегайте использования ползунка для ввода числовых данных. Вместо этого используйте текстовое поле или раскрывающееся меню.
Узнайте больше о слайдерах на сайте Material.io.

Не используйте ползунок для определенных значений, если существует большой диапазон. Вместо этого используйте текстовые поля для ввода с клавиатуры.
Проверка данных и ошибки
Валидация данных
Проверка данных ограничивает тип данных или значений, которые можно ввести в текстовое поле. Проверка данных может улучшить качество собираемых данных.
Используйте поле EntryFormat для отображения ограничений формата или значения. Покажите значимые сообщения об ошибках проверки данных сразу же, чтобы пользователи могли исправить ошибку.

Покажите ограничения проверки данных заранее, чтобы пользователи знали, как вводить данные.

Если не указать, сколько цифр должно быть в номере телефона, пользователи могут столкнуться с ошибкой, и ее завершение займет больше времени.

Покажите значимые ошибки проверки данных сразу после заполнения поля. Сообщения об ошибках заменяют существующий текст формата записи.

Не ждите, пока пользователь нажмет «Отправить», чтобы впервые отобразить ошибки проверки.
Ошибки
Сообщения об ошибках предупреждают пользователей, когда что-то идет не так, и сообщают, как устранить проблему.
Используйте цвет, значки и текст, чтобы сообщить об ошибках.
Узнайте больше о сообщениях об ошибках на сайте Material.io.

Объясните, почему возникла ошибка (обязательный вопрос) и что можно сделать, чтобы ее исправить (выберите один вариант).

Сообщение об ошибке, в котором говорится только «ошибка», не помогает пользователям узнать, как исправить ошибку.

Пример: «Неверный формат даты. Формат должен быть дд/мм/гггг».

Не обвиняйте пользователя в сообщениях об ошибках, содержащих слово «вы». Пример: «Вы ввели неверный формат даты».

Используйте цвет, значки и текст, чтобы сообщить пользователям об ошибке.

Чтобы поддержать распространенные нарушения зрения, такие как красно-зеленая цветовая слепота, не полагайтесь только на цвет для сообщения об ошибке.

Одной иконки часто бывает достаточно. Не переусердствуйте с использованием значков для сообщения об ошибке.