Проектируем строку поиска в приложении: 182 гайдлайна

Поисковая строка – один из ключевых инструментов в e-commerce приложении, от которого зависит, найдёт клиент нужные товары или уйдёт к конкурентам. В этой статье мы в деталях разберём множество нюансов проектирования строки, которые включают как аспекты в UX, так и в UI
Станислав Хрусталёв
Станислав Хрусталёв
Автор Hard Client. Пишу об управлении клиентским опытом. Собираю лучшие CX-практики. Оцениваю сервисные модели компаний

Структура статьи

Чтобы облегчить восприятие, статью я разбил на смысловые блоки. Каждый из них содержит в себе подробный чек-лист.

Размещение строки поиска

6 гайдлайнов

В верхней части экрана

Чаще всего на текущий момент поисковую строку можно встретить именно вверху экрана. Это наиболее часто встречаемый паттерн.

Рив Гош
✅

Внизу экрана?

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

Zara
?

Изначально в центре экрана

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

СпортМастер
✅

Фиксация при скролле

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

Л’Этуаль
✅

В таббаре

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

Букмейт
✅

В быстрых действиях

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

Lamoda
✅

Внешний вид строки

5 гайдлайнов

Строка видна полностью

Если структура каталога сложная и категорий очень много, поиск с помощью строки становится ключевым. Поэтому её по умолчанию отображают полностью.

Яндекс.Маркет
✅

Строка спрятана за кнопку

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

Rendez-Vous
✅

Непрозрачна

Полупрозрачный или полностью прозрачный фон делает и строку, и placeholder менее заметными и гораздо хуже читаемыми.

Urban Vibes
❌

Хорошо выделяется

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

Zara
❌

Иконка общепринятая

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

Zarina
✅

Placeholder строки поиска

25 гайдлайнов

Предусмотрен

В строке поиска, как и во множестве других полей ввода, стоит предусмотреть placeholder, облегчающий понимание её функции.

Sela
❌

В левой части строки

За исключением локализации на арабский, лучше будет разместить placeholder в наиболее привычном месте: в левой части поисковой строки.

Zara
❌

Центрирован по горизонтали

Реже используется центрированный placeholder, визуально превращающий строку в подобие кнопки. Но, опять же, такое центрирование уместно лишь до момента её активации.

Впрок
✅

Контрастен

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

Zenden
❌

Размер шрифта удобен для чтения

Проектируя placeholder, убедитесь, что он не будет мельчить. Клиент не должен напрягать зрение в попытке понять, что именно там написано.

Lichi
❌

Отличается по цвету от текста запроса

Чтобы пользователи не путали placeholder с уже введённым запросом, их часто делают визуально отличными. Чаще placeholder чуть более выцветший, чем текст запроса. 

Gloria Jeans
❌

Не обрезается

Спроектируйте строку поиска и текст placeholder’а так, чтобы он не обрезался и был виден полностью. 

Почта России
❌

Без дублирования контента

Если в поиске есть заголовок, в том, чтобы продублировать текст в placeholder’е, нет особого смысла. Лучше придумать что-то более креативное.

KDV Online
❌

Текст корректен

Базовый момент: текст должен быть написан корректно и не должен вызывать вопросов.

Mango
❌

Содержит целевое действие

Текст placeholder’а может отталкиваться от целевого действия, побуждая пользователя начать поиск.

Kazan Express
✅

Поясняет, когда обновится подсказка?

Некоторые идут дальше и поясняют, что нужно ввести первые символы. Как считаете, такое исполнение имеет право на существование или это перебор? Напишите в комментах.

Kuchenland
?

Содержит типы запросов

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

Lamoda
✅

Не вводит в заблуждение

При этом, подсвечивая типы запросов, убедитесь, что вы не вводите клиента в заблуждение о том, что искать можно лишь по одному параметру, говоря в placehoder’е только о нём.

Simple Wine
❌

Содержит вопрос

Некоторые компании в placeholder’е как бы обращаются к пользователю, спрашивая, что он хочет найти. 

Street Beat
✅

Содержит название компании

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

СберМаркет
✅

Подстраивается под контекст

Placeholder можно подстраивать под контекст, в котором находится клиент. Например, при поиске по каталогу одного из магазинов в placeholder’е можно упоминать его название.

igooods
✅

Подсвечивает широту ассортимента

Если у вас широкий ассортимент товаров, об этом, помимо прочего, можно рассказать и в placeholder’е поисковой строки.

Somon
✅

Подсвечивает качество функции поиска

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

La Redoute
✅

Выполнен от лица клиента

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

Kari
✅

Содержит пример запроса?

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

Додо Пицца
?

Динамически обновляется

Если уж и добавлять в placeholder примеры запросов, то их можно динамически обновлять. Суть placeholder’а в таком случае станет более понятна.

Lazada
✅

Отображается при активации

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

OBI
❌

Меняет формулировку при активации

Если поисковая строка отображалась по умолчанию полностью, при ее активации placeholder может меняться, становясь более приближенным к контексту.

Маркет Деливери
✅

Курсор в начале текста при активации

При активации строки поиска курсор должен располагаться в начале placeholder’а. Это наиболее привычный паттерн. 

INCITY
❌

Отображается при вводе?

Отображение уменьшенного placeholder’а при вводе данных в формы — хороший паттерн. Но для поиска это редкость. Что думаете по этому поводу? Напишите в комментах.

Lime
?

Активация строки

6 гайдлайнов

В одно касание

Как бы ни была спроектирована строка — видна полностью или спрятана за кнопку — она должна активироваться в одно касание.

O’STIN
❌

Реакция на касание

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

Букмейт
✅

Плавная анимация

При активации строки лучше использовать быструю, но плавную анимацию. От прерывистых и резких реакций интерфейса лучше отказаться.

Lamoda
✅

Без задержек

Активация строки при тапе по ней должна происходить моментально, без каких-либо задержек.

Shop
✅

Без сильного изменения дизайна

Строку можно незначительно изменить при активации, но менять скругление углов, цвет заливки, размер шрифта в placeholder’е, иконку и т.д. – вероятно, уже перебор. 

Азбука Вкуса
❌

Без изменения местоположения

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

МегаМаркет
❌

Подсказка при активации строки

31 гайдлайн

Реализована

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

М.Видео
❌

В полноэкранном формате

Подсказку лучше реализовать в полноэкранном формате. Отображение в качестве всплывающего окна — паттерн, более свойственный десктопам.

Столплит
❌

Персонализирована, если есть данные

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

Ozon
✅

Без ложной персонализации

Однако если я только скачал приложение, и компания еще ничего не знает обо мне, «рекомендация именно для меня» может звучать странно. 

Hoff
❌

Содержит популярные товары

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

Sunlight
✅

Содержит категории товаров 

Помимо конкретных товаров, можно выделить и наиболее популярные категории с быстрыми ссылками к соответствующим листингам.

FlowWow
✅

Содержит популярные запросы

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

МегаМаркет
✅

Содержит примеры запросов

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

Auto.ru
✅

Содержит рекомендуемые бренды

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

Lamoda
✅

Содержит каталог

В подсказке при активации строки поиска можно разместить мини-версию каталога. Выглядит достаточно гармонично.

Магнит
✅

Содержит историю поиска

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

FlowWow
✅

Содержит непродуктовые подсказки

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

Lichi
?

Содержит фильтры

Подсказка также может содержать и фильтры, которые позволяют сделать её более релевантной. 

ЦУМ
✅

Комбинированная подсказка

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

СпортМастер
✅

В формате списка

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

Lamoda
✅

В формате бабблов

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

AliExpress
✅

В формате листинга

Рекомендуемые товары часто отображают в виде листинга с вертикальным скроллом, чаще всего по 2-3 товара в ряд.

Ozon
✅

В формате карусели

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

Sunlight
✅

Контент подсказки озаглавлен

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

Leroy Merlin
❌

Контент не дублируется

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

Zarina
❌

Контент понятен

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

Sela
❌

Подсказка визуально не перегружена

По возможности лучше сделать подсказку визуально лёгкой, не перегружая слишком большим объёмом контента.

Почта России
❌

Highlight вариантов подсказки

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

Shein
✅

Highlight понятен

При этом убедитесь, что смысл маркеров, которыми вы выделяете варианты подсказки, будет понятен.

12 Storeez
❌

Визуализация категорий

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

FlowWow
✅

Визуализация корректна

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

Светофор
❌

Неограниченное число товаров

Иногда можно встретить механику «бесконечной» подборки, когда рекомендуемые товары подгружаются по мере её скролла. Что думаете об этом? Напишите в комментах.

Ozon
✅

Ограничение по числу товаров

Однако чаще в подсказке всё же есть лишь ограниченное число рекомендуемых товаров, т.к. основное намерение клиента в этот момент — всё же поиск через строку.

Маркет Деливери
✅

Переход расширенному списку

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

Lady & Gentleman City
✅

Highlight возможности скролла

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

ВкусВилл
✅

Placeholder вместо подсказки?

Некоторые компании вместо подсказки размещают своего рода placeholder. Как считаете, что лучше: подсказка по умолчанию или то, что в примере? Напишите в комментах.

US Mall
?

Поддерживаемые типы запросов

11 гайдлайнов

Поиск по вхождению ключевого слова

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

Farfetch
✅

Ввод с опечатками

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

Спортмастер
✅

Ввод на другом языке

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

Лента
✅

Сленг, аббревиатуры и синонимы

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

Ситилинк
✅

Поиск по спецификациям

Если вы продаёте сложные товары с большим числом параметров, убедитесь, что, если клиент введёт набор параметров, то получит релевантные результаты. 

Auto.ru
✅

Поиск с учётом связей

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

ЦУМ
✅

Поиск по категориям

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

МегаМаркет
✅

Поиск по проблемам и симптомам

Если клиент приходит за решением проблемы, а сила бренда товаров невелика, важно обеспечить поиск по проблемам / симптомам. Например, «спреи от насморка». 

еАптека
✅

Поиск по соответствию другим товарам

Например, при поиске адаптеров для iPhone система должна понимать, какие товары типа «адаптер» связаны с iPhone, и давать релевантную подборку. 

Ситилинк
✅

Поиск с учетом имеющихся данных

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

Lamoda
❌

Непродуктовый поиск

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

Технопарк
✅

Подсказка при вводе запроса

38 гайдлайнов

Реагирует на текстовый ввод

По-хорошему подсказка должна хоть как-то реагировать на ввод поискового запроса, не так ли? Однако такая базовая реакция предусмотрена не у всех.

Befree
❌

Срабатывает быстро

По возможности сократите до минимума время между вводом поискового запроса и обновлением подсказки.

Золото 585
❌

Задержка при вводе слова

При этом, как ни странно, не стоит спешить, обновляя результаты по несколько раз, пока клиент вводит слово. В реакции должна быть хоть и небольшая, но задержка.

Zolla
❌

Расположена на переднем плане

При вводе запроса ничего не должно отвлекать клиента, а подсказка должна быть на переднем плане и ничем не перекрываться. С любыми popup’ами лучше повременить.

Gipfel
❌

Контент релевантен

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

Flor2u
❌

Сортировка по релевантности

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

Снежная Королева
❌

Комплексная

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

СпортМастер
✅

Разнотипный контент не смешан

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

Иль де Боте
❌

Подсказки не конкурируют друг с другом

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

Gloria Jeans
❌

Подсказки не дублируются

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

Снежная Королева
❌

Структурирование за счёт иконок

Первый вариант, как помочь пользователю понять различия в типе контента, на который ссылается подсказка — добавить иконки или миниатюры: запросы, товары, категории, бренды.

Ozon
✅

Структурирование за счёт подписей

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

Wildberries
✅

Структурирование за счёт заголовков

Также можно разбить общий список на блоки с заголовками по аналогии с состоянием подсказки при активации строки.

Технопарк
✅

Структурирование за счёт вкладок

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

Shop
✅

Highlight брендов логотипами

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

Дром Авто
✅

Переключение между вкладками 

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

Shop
✅

Уровень категорий в подсказке

Как считаете, стоит ли отображать верхнеуровые категории в подсказке наравне с более точными и прицельными? Давайте обсудим в комментах.

Kari
✅

Highlight числа товаров в категориях

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

585 Золотой
✅

Иерархия категорий в подписях

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

Zarina
❌

Подписи видны полностью

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

МегаМаркет
❌

Highlight общего числа результатов

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

Kari
✅

Текст в общем числе товаров согласован

При использовании индикатора с количеством товаров не забудьте подстраивать текст под число: «товаров», «товар», «товара».

Магнит
❌

Быстрое добавление товаров

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

Лента
✅

Введённый текст выделен

Часто вводимый запрос выделяется в текстах подсказок, акцентируя внимание на том, что он в них присутствует.

Farfetch
✅

Выделение текста хорошо заметно

Если вы используете механику выделения введённого текста в подсказке, позаботьтесь о том, чтобы различия в форматировании были отчётливо заметны.

Leroy Merlin
❌

Введённый текст вторичен

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

Lamoda
✅

Текст подсказок вписывается в экран

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

Metro
❌

Текст подсказок без ошибок

Желательно, чтобы текст подсказок проходил проверку на наличие ошибок. Хоть это и базовый момент, но не могу его не добавить, раз есть примеры среди крупных компаний.

Zenden
❌

Без маркировки строки типом данных

В отличие от форм ввода контактных данных, строку поиска никак не нужно маркировать на уровне среды разработки. Такие подсказки будут бесполезны.

FlowWow
❌

Без подсказки в клавиатуре

При вводе запроса подсказку от iOS над клавиатурой лучше отключить: она менее эффективна, чем подсказка от приложения, а ценное место занимает.

585 Золотой
❌

Уточняющие подсказки

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

Hoff
✅

Прокрутка подсказки

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

Холодильник.ру
❌

Без прокрутки, если она не требуется

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

Visage Hall
❌

Размер контента vs. ScrollView

Частный случай некорректного скролла — когда размер контента сильно разнится со ScrollView, в который он помещен. Получается ещё хуже, чем в предыдущем примере.

Gipfel
❌

Фиксация строки при скролле

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

Золотое Яблоко
✅

Фиксация заголовка блока при скролле

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

Shop
✅

Без клавиатуры при скролле

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

Золотое Яблоко
✅

Ручное скрытие клавиатуры

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

Эльдорадо
✅

История поиска

19 гайдлайнов

Предусмотрена

Процесс выбора товара может занимать ни одну сессию. Клиент может совершать повторяющиеся заказы. Поэтому часто в строке поиска можно встретить историю запросов.

Рив Гош
✅

Не видна, если не было запросов

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

LiveMaster
❌

Без placeholder’а с констатацией факта

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

Столплит
❌

Placeholder с призывом к действию

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

La Redoute
✅

Обособлена от вариантов подсказки

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

Leroy Merlin
❌

Блок озаглавлен

Лучше в явной форме пояснить в рамках подсказки, что это именно история поиска, чтобы не вызывать лишних вопросов со стороны клиента. 

Эльдорадо
✅

В формате списка

Чаще всего историю запросов реализуют в формате вертикального списка.

Яндекс.Маркет
✅

В формате бабблов

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

FlowWow
✅

Поиск vs. просмотры

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

ЦУМ
✅

Сортировка по хронологии

Запросы в истории поиска лучше отсортировать по давности: от самого свежего к более старым.

СберМаркет
✅

Ограничение числа запросов

Число последних запросов в истории часто ограничивают, чтобы не перегружать интерфейс.

МегаМаркет
✅

Запросы сопровождаются иконками

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

Ozon
✅

Очистка одного запроса

Некоторые запросы в истории могут стать неактуальными, или пользователь может захотеть удалить что-то по причинам приватности. Дайте ему эту возможность.

ВсеИнструменты
❌

Очистка всех запросов

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

Ситилинк
✅

Активная область кнопок очистки

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

Gipfel
❌

Кнопка очистки видна, если есть запросы

Как и в случае с очисткой запроса в строке поиска, если запросов нет, кнопка очистки в истории поиска также не нужна.

Мираторг
❌

Кнопки очистки истории vs. запроса

Кнопки очистки всей истории и запроса лучше сделать визуально различными. Например, очистка запроса может быть в виде крестика, а очистка истории — в формате текста.

МегаМаркет
✅

История пропадает при вводе

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

СберМаркет
✅

История видна, если содержит текущий запрос

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

Рив Гош
✅

Подсказка при отсутствии результатов

13 гайдлайнов

Без пустого экрана

Если пользователь ввёл запрос, по которому в приложении нет результатов, не стоит об этом «молчать», отображая лишь пустой экран.

Ozon
❌

Без предложения запустить поиск

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

Детский Мир
❌

Без варианта с некорректным запросом

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

Все Инструменты
❌

Без нерелевантных подсказок

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

Лента
❌

Констатация факта

Первое, что стоит сделать — в явной форме сообщить клиенту о том, что по его запросу ничего не найдено.

Спортмастер
✅

Предложение изменить запрос

Помимо констатации факта желательно также направить пользователя нужным путём. Первый вариант — предложить ему изменить свой запрос.

Магнит
✅

Кнопка очистки запроса

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

Auto.ru
✅

Предложение проверить запрос на корректность

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

Kaspi.kz
✅

Предложение использовать каталог

Если клиент не смог найти товар через строку, это не значит, что его 100% нет. Просто запрос мог быть некорректным. Поэтому можно предложить ему поискать по каталогу.

Спортмастер
✅

Кнопка перехода к каталогу

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

Sunlight
✅

Предложение популярных товаров

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

Золотое Яблоко
?

Подборка популярных товаров

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

Золотое Яблоко
❌

Визуализация

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

Auto.ru
✅

Очистка запроса

4 гайдлайна

Функция предусмотрена

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

Пятёрочка
✅

Кнопка не видна, если поле пустое

Если пользователь ещё не ввёл запрос в строку поиска, отображать кнопку очистки запроса не стоит, потому что в этот момент её полезность будет нулевой.

Рив Гош
❌

Кнопка привычна

Лучше выбрать наиболее привычную визуализацию для кнопки очистки поискового запроса. В подавляющем большинстве случаев это крестик. 

СберМаркет
✅

Строка активна при нажатии

При тапе по кнопке очистки запроса основное намерение — ввести новый запрос. Поэтому строку поиска не стоит деактивировать: так пользователь сразу сможет начать ввод. 

LC Waikiki
✅

Отмена поиска

11 гайдлайнов

Кнопка отмены предусмотрена

Предусмотрите возможность отменить ввод текста в строку поиска.

Ozon
✅

Появляется при активации строки

Кнопка отмены должна появляться, когда пользователь начинает ввод поискового запроса.

Сантехника-Онлайн
✅

Видна при скролле подсказки

Кнопка отмены должна быть видна при скролле подсказки, даже если строка поиска при этом деактивируется.

Маркет Деливери
✅

Кнопки отмены vs. очистки

Сделайте кнопку отмены визуально отличной от кнопки очистки. Если за очистку чаще всего отвечает «крестик», кнопку отмены можно выполнить в текстовом формате.

Додо Пицца
✅

Расположена справа от строки

Часто кнопку отмены в текстовом формате размещают в правом верхнем углу экрана, справа от строки поиска.

Lamoda
✅

Расположена слева от строки

Однако если отмена реализована в виде навигационной кнопки «назад», имеет смысл разместить её слева от строки: такое расположение будет более привычным.

ВкусВилл
✅

Отмена — не только деактивация строки

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

ЛеМуррр
❌

Отмена — не возврат назад

Кнопка отмены поиска не должна работать, как кнопка «назад» в браузере и не должна возвращать пользователя к предыдущим запросам, если они были введены до этого.

Kuchenland
❌

Закрытие через смахивание

Если экран поиска расположен в navigation controller’е, помимо нажатия на кнопку, также реализуйте возможность закрыть его через боковое смахивание (edge swipe).

Яндекс.Маркет
✅

Анимация закрытия

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

Lamoda
✅

Верстка при закрытии корректна

Если вы используете анимацию закрытия поиска, сделайте её плавной, без каких-либо резких и непредвиденных скачков в вёрстке. 

Mango
❌

9 гайдлайнов

Использование кнопки return

Предусмотрите запуск поиска нажатием на кнопку return на экранной клавиатуре.

МегаМаркет
✅

Текст кнопки return релевантен

Текст кнопки return на iOS можно менять. Для поиска как раз есть подходящее значение: «Найти» / «Search». 

Ozon
✅

Кнопка return неактивна, если поле пустое

Если клиент еще ничего не ввёл, кнопку return можно делать неактивной: искать всё равно будет нечего.

Lamoda
✅

Кнопка над клавиатурой?

В некоторых приложениях кнопку поиска также размещают над клавиатурой. Что думаете по этому поводу? Полезный элемент или ненужное дублирование кнопки return?

Эльдорадо
?

Размер кнопки

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

Детский Мир
✅

Без кнопки рядом со строкой

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

OBI
❌

Подсказка реагирует на тап

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

Lamoda
✅

Релевантность целевых листингов

Убедитесь, что при переходе по подсказкам клиент столкнётся лишь с целевым контентом. В поисках шоколада он не должен видеть сыр и морепродукты.

Metro
❌

Динамическое обновление результатов

Некоторые компании идут дальше и отображают результаты динамически, без необходимости нажимать на кнопку. Но стоит помнить, что этот метод более ресурсоёмкий. 

ВкусВилл
✅

Альтернативы строке поиска

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

Голосовой поиск

Кто-то любит общаться текстом. Кто-то — записывать голосовые сообщения. Специально для второй группы часто можно встретить функцию голосового поиска. 

СберМаркет
✅

Поиск по фото

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

ЦУМ
✅

Сканирование штрихкодов

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

ВкусВилл
✅

Индексация категорий в Siri

Некоторые выходят за рамки приложения и позволяют искать товары в строке поиска iPhone за счёт индексации каталога в Siri. Думаю, используется это редко. Но сама тема крутая.

OLX.kz
✅

To be continued…

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

Надеюсь, этой статьей мне удалось немного прокачать вашу насмотренность? Если да, то дайте знать в комментах. Если нет – жду фидбэка там же.

Следующие материалы будут с таким же высоким уровнем детализации. Продолжаем создавать крупнейшую русскоязычную базу знаний по UX/UI в e-commerce.

Свои новые материалы я анонсирую в Телеграм-канале. Подписывайтесь, если хотите их не пропускать. На связи.

Поделиться
Отправить
Запинить