Rose debug info
---------------

Специфика обработки нажатий кнопок в тач-интерфейсах — 1

...или
как включить мультик.

Дизайнерам и разработчикам сенсорных интерфейсов.

Часть 1.

Тап — касание сенсорного экрана, которое система распознаёт как нажатие, а не как начало перетаскивания.

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

Когда это перетаскивание непреднамеренное, интерфейс чудит. Например, видео сворачивается вместо запуска.

Дочь (4 года) при просмотре мультиков на айпаде в VK Video часто не может с первой попытки запустить ролик. Экран — стандартный айпад. Она пытается нажать на кнопку «плей», и видео то сворачивается, то уезжает непонятно куда.

Примерно как-то так:

Но «плей» — это же просто кнопка. Что с ней еще можно делать? Если это интерфейсный элемент, заведомо предназначенный только для нажатия, зачем вообще пытаться отслеживать на нем событие перетаскивания?

Зачем вообще сворачивать видео путем нажатия на кнопку «плей»?

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

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

При этом кнопка воспроизведения в VK Video довольно мелкая, и область кликабельности у нее минимальная. И уж ладно это поперек закона Фиттса. Но раз она такая мелкая, то разве не очевидно, что если человек попал пальцем на большом экране в область маленькой кнопки, ТО ОН ХОЧЕТ НАЖАТЬ НА ЭТУ КНОПКУ, а не свернуть видео?

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

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

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

Продолжение следует в ближайшее время. Лонгрид будет в двух частях. Самое интересное — впереди ) Во второй части разберём биомеханику тапов, почему это важно, и почему всё не так просто, как кажется.

UPD.
Вторая часть, Фиттс, биомеханика тапа, выводы