Специфика обработки нажатий кнопок в тач-интерфейсах — 1
...или
как включить мультик.
Дизайнерам и разработчикам сенсорных интерфейсов.
Часть 1.
Тап — касание сенсорного экрана, которое система распознаёт как нажатие, а не как начало перетаскивания.
Если после касания тачскрина палец слегка смещается (скользящий тап) — кнопка уже не срабатывает на нажатие. Вместо этого запускается перетаскивание.
Когда это перетаскивание непреднамеренное, интерфейс чудит. Например, видео сворачивается вместо запуска.
Дочь (4 года) при просмотре мультиков на айпаде в VK Video часто не может с первой попытки запустить ролик. Экран — стандартный айпад. Она пытается нажать на кнопку «плей», и видео то сворачивается, то уезжает непонятно куда.
Примерно как-то так:
Но «плей» — это же просто кнопка. Что с ней еще можно делать? Если это интерфейсный элемент, заведомо предназначенный только для нажатия, зачем вообще пытаться отслеживать на нем событие перетаскивания?
Зачем вообще сворачивать видео путем нажатия на кнопку «плей»?
В обработчике событий настраивается порог допустимого смещения пальца во время тапа. И это пороговое значение должно быть настроено адекватно элементу и возможным сценариям. Касания под углом, в транспорте во время движения, и т. п. Или может просто у человека рука дрожит, мало ли почему.
Кнопка — простой стандартный элемент, она в первую очередь должна нормально нажиматься.
При этом кнопка воспроизведения в VK Video довольно мелкая, и область кликабельности у нее минимальная. И уж ладно это поперек закона Фиттса. Но раз она такая мелкая, то разве не очевидно, что если человек попал пальцем на большом экране в область маленькой кнопки, ТО ОН ХОЧЕТ НАЖАТЬ НА ЭТУ КНОПКУ, а не свернуть видео?
Вспоминаю историю про клавиатуру первого айфона. Эпл впервые делали тач-ввод текста с клавиатуры, и учли неточность движения пальцев. Алгоритм по движениям предугадывал слово, которое хотел написать пользователь, а не брал фактические строгие координаты. Забота в таких деталях по-прежнему встречается редко.
Нужен адекватный порог невосприимчивости к смещению при тапе.
Порог может варьироваться в зависимости от контекста. Например, в зависимости от размера и типа элемента. А кнопка «плей» должна просто нажиматься.
Для стандартных элементов во всех распространенных операционных системах порог обычно уже прописан по умолчанию. Дальше все зависит от корректности разработки в конкретном приложении. Так как бывают кастомные элементы и настройки, в некоторых случаях с этим проблемы.
Продолжение следует в ближайшее время. Лонгрид будет в двух частях. Самое интересное — впереди ) Во второй части разберём биомеханику тапов, почему это важно, и почему всё не так просто, как кажется.