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

Как спорный UI-паттерн увеличивает прибыль, но снижает доверие

Недавно в своём тг-канале я разместил пост о том, что в мобильном приложении Авито в сценарии создания объявления содержится неочевидное решение, которое противоречит ментальной модели пользователя и фактически является дарк-паттерном.

Селектор позволяет выбрать лишь один из вариантов (как радиокнопка), но при повторном нажатии отключается
Селектор позволяет выбрать лишь один из вариантов (как радиокнопка), но при повторном нажатии отключается

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

1. Термины и семантика элементов (с примерами)

Чтобы разобраться в паттернах тех или иных элементов, мы будем опираться на их поведение в Human Interface Guidelines, так как разбираем приложение на Айфоне. Проштудировав библиотеку компонентов, мы узнаем, что в интерфейсе iOS чекмарком называется сам символ (иконка) и может использоваться как самостоятельный элемент, так и быть частью другого компонента.

Чекмарк в интерфейсе iOS
Чекмарк в интерфейсе iOS

Если же рассматривать круглый чекмарк с подложкой (как в нашем случае), то называется он Selection Indicator (одиночный выбор) или Selection Badge (множественный выбор). Не смотря на то, что выглядят они одинаково, их поведение является принципиально различным и взаимоисключающим.

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

Примеры использования Selection Indicator (одиночный обязательный выбор)
Примеры использования Selection Indicator (одиночный обязательный выбор)

Если говорить о Selection Badge, то он используется в множественном выборе (MultiSelect), а повторное нажатие на элемент позволяет снять отметку.

Примеры использования Selection Badge (множественный выбор с возможностью отжать элемент)
Примеры использования Selection Badge (множественный выбор с возможностью отжать элемент)

Резюмируя вышесказанное, мы приходим к ключевому паттерну, отличающим один элемент от другого:

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

2. Чекмарк в одежде радиокнопки

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

Аналогичные компоненты с круглым чекмарком ведут себя по-разному
Аналогичные компоненты с круглым чекмарком ведут себя по-разному

3. Как это исправить

Самый простой способ - разместить третий селектор «Без преимуществ» (условно) с коротким текстом выгод, которые продавец упускает. Также стоит обратить внимание, что если кнопка «Продолжить» зафиксирована, то и текст с условиями стоит зафиксировать (чтобы избежать ситуации, при которой пользователь его не заметит и пропустит экран).

Текст с условиями зафиксирован вместе с кнопкой
Текст с условиями зафиксирован вместе с кнопкой

4. Заключение

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

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

Комментарии (4)


  1. Tomasina
    26.06.2025 06:59

    Там и на правом скриншоте кривой UI - голубой переключатель по сути выполняет ту же функцию "включить/выключить", но дизайн у него иной, чем у элементов ниже. Зачем на одном экране делать два типа элементов, которые визуально разные, но выполняют одинаковую функцию?


    1. ika_sultanov Автор
      26.06.2025 06:59

      Это не весь экран, вверху экрана есть возможность включения/выключения Авито доставки. То есть включение Авито доставки не обязует включать бесплатную доставку (скидку) для покупателей. Немного разные контексты переключателей.


  1. MrSmitix
    26.06.2025 06:59

    Я прекрасно понимаю и осознаю что habr уже не торт не площадка для жалоб, но мне кажется у Авито есть куда более серьезные проблемы снижающие доверие к их платформе чем какие-то там спорные моменты в UI/UX. Ребята до сих пор не научились (или не хотят) блочить фейковые объявления в недвижке и всячески игнорируют любые жалобы на таковые. Приходится пользоваться расширениями вроде Ave Blacklist (очень рекомендую, it's amazing) что б превратить помойку в выдаче в что-то более менее юзабельное


  1. radtie
    26.06.2025 06:59

    А вы не думали, что это не ошибка, а осознанный дарк-паттерн?

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