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

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

Ну, в первой части немного размялись, а теперь — к делу! )

Часть 2. Биомеханика сенсорных кнопок

Гипотеза

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

* * *

Закон Фиттса описывает сложность наведения на цель в пространстве. Но ничего не говорит о самом моменте касания и возможном проскальзывании пальца.

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

Оглавление:
Гипотеза (вы здесь)
Фиттс
    Оригинальная статья
    Модификации закона Фиттса
    Модификация FFitts
    Устройство для эксперимента
Мышь
    Биомеханика
    Фиксация руки
Пальцы
    Видимость цели
    Форма контакта
    Кинетическая цепочка
    Вращательное движение
    Отдельная фаза
Выводы и рекомендации

Фиттс

Оригинальная статья Пола Фиттса 1954 года

http://www2.psychology.uiowa.edu/faculty/mordkoff/InfoProc/pdfs/Fitts%201954.pdf

На Википедии:
https://en.wikipedia.org/wiki/Fitts%27s_law

В переводе на русский:
https://translated.turbopages.org/proxy_u/en-ru.ru.f66b549e-69427f60-bf9f66f5-74722d776562/https/en.wikipedia.org/wiki/Fitts%27s_law

В общем виде закон Фиттса увязывает три вещи:
— Расстояние до цели,
— Размер цели,
— Время движения.

Не буду сюда тащить формулы, смотрите в исходной статье.

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

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

Модификации закона Фиттса

Существуют вариации под разные устройства и задачи — 2D, 3D, разные формы целей. По сути, это просто математические модели оценки сложности наведения.

Модификация FFitts

https://www3.cs.stonybrook.edu/~xiaojun/pdf/FFitts.pdf
https://research.google.com/pubs/archive/41645.pdf

FFitts (Finger-Fitts) добавляет фактор абсолютной неточности пальца — «дрожь», fat finger problem. Около 1—1,5 мм, независимо от задачи.

Однако это не относится к величине проскальзывания пальцев при тапе. Модель просто оценивает наведение на элемент. И ничего не говорит о проскальзывании пальца после касания.

Устройство эксперимента Фиттса

Обратим внимание на аппарат в оригинальном эксперименте Фиттса: при касании пластины счётчик фиксировал только первый момент контакта и блокировался до касания противоположной пластины, чтобы не было дублирующих срабатываний.

Эксперимент никак не фиксировал проскальзывания стилуса. Можно было хоть вензеля выписывать — прибор регистрировал только первый момент касания.

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

Мышь.

Микропауза

Биомеханика клика мыши отличается от тапа.
Фазы:
— Движение мыши к цели,
— Микропауза над целью,
— Клик.

Что за «Микропауза над целью»?
Мы не кликаем мышью «вскользь», если только это не специализированный интерфейс или компьютерная игра. Микропауза возникает потому, что курсор виден. И мы ждём визуального подтверждения точного позиционирования. А реакция человека — не мгновенная, она занимает доли секунды. Эта остановка мыши устраняет проскальзывание курсора в момент нажатия.

Фиксация руки

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

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

Пальцы: биомеханика тапа

Видимость цели

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

Форма контакта

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

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

Кинетическая цепочка

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

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

Вращательное движение

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

Отдельная фаза движения

Подход Фиттса, это по сути оценка сложности сближения условного указателя с элементом в N-мерном пространстве. Процесс сближения — стохастический: траектории содержат случайную составляющую. И чем точнее движение, тем меньше отклонение траекторий от идеальной.

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

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

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

Выводы и рекомендации

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

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

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

В операционных системах (iOS, Android и др.) учет Touch slop есть по умолчанию (UIGestureRecognizer, ViewConfiguration). Настройка Touch slop на уровне 2—3 мм как раз отражает реальную точность, которую можно ожидать от пользователя. Но в кастомных компонентах это свойство легко поменять или забыть настроить.

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

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

Это не критика закона Фиттса — он актуален в своей области. Просто для сенсорных интерфейсов к сложности наведения стоит добавить сложность самого касания.

Дизайнерам и разработчикам

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

Передайте коллегам в VK Video :-) Мы там смотрим мультики с дочерью и хотим, чтобы кнопка Play запускала ролик, а не сворачивала его.

Пишите вопросы и комментарии в Телеге:
https://t.me/sergeykashin/818