TUI против GUI: дело не в терминале, а в поддержке клавиатуры

На прошлой неделе автор блога наткнулся на пост на Hacker News, который вышел на первую страницу и вызвал бурное обсуждение в комментариях. Пост призывал разработчиков перестать делать терминальные интерфейсы (TUI) и сосредоточиться на графических (GUI). Автор согласен, что у GUI-фреймворков возможности в теории шире, чем у TUI, но хочет оспорить один повторяющийся контраргумент из комментариев: якобы TUI стоит предпочитать именно потому, что они управляются с клавиатуры.

Его возражение: если наугад взять GUI-приложение и TUI-приложение, второе действительно с большей вероятностью окажется полностью управляемым с клавиатуры, но это не довод в пользу того, чтобы делать TUI вместо GUI. Это лишь показывает, что клавиатурная навигация во многих GUI сделана плохо. Ничто в природе GUI не мешает ему быть полностью управляемым с клавиатуры не хуже, а то и лучше, чем TUI. В качестве примера автор приводит гайдлайны GNOME (GNOME Human Interface Guidelines): в них прямо сказано, что каждое действие, доступное указывающим устройством (мышью), должно быть доступно и с клавиатуры, включая перемещение и взаимодействие с любой частью интерфейса.

Автор рассказывает и о собственном опыте разработчика: для своего первого GUI-приложения под названием Klisi он специально выделил время, чтобы реализовать клавиатурные шорткаты, покрывающие весь набор действий в приложении. Его вывод: полная поддержка клавиатуры в GUI в большинстве случаев не представляет технической сложности и в итоге даёт более качественный пользовательский опыт, это вопрос не осуществимости, а желания разработчика этим заниматься. Итоговый призыв, не идти на компромисс в удобстве использования и не игнорировать полную клавиатурную навигацию.

Ключевые факты

  • Спор начался с поста на Hacker News, призывавшего разработчиков отказаться от TUI в пользу GUI
  • Автор возражает не самому посту, а частому контраргументу комментаторов: «TUI лучше, потому что управляются с клавиатуры»
  • По его мнению, ничто не мешает GUI быть полностью управляемым с клавиатуры не хуже, а то и лучше TUI, проблема в реализации конкретных GUI
  • Пример: гайдлайны GNOME (Human Interface Guidelines) требуют, чтобы каждое действие мышью дублировалось клавиатурой
  • Автор, разработчик приложения Klisi, своего первого GUI-приложения, куда он добавил клавиатурные шорткаты на весь функционал

Почему это важно

Материал переворачивает привычную рамку спора «терминал против графики»: дело не в том, какой тип интерфейса выбрать, а в том, что многие GUI-приложения плохо продуманы с точки зрения клавиатурной навигации. Автор указывает на разрыв между теоретическими возможностями GUI-фреймворков (они шире, чем у TUI) и тем, что реально реализуют разработчики.

Кому это важно

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

Как это применить

Автор советует не считать полную клавиатурную поддержку опциональной доработкой: закладывать шорткаты на весь набор действий приложения ещё на этапе проектирования, ориентироваться на существующие гайдлайны (в тексте назван пример GNOME Human Interface Guidelines) и проверять, что любое действие, доступное мышью, доступно и с клавиатуры.

Можно ли доверять

Это личное мнение автора блога, написанное как реплика в публичном споре на Hacker News, а не исследование с данными. Аргументация опирается на логическое рассуждение и один пример из гайдлайнов GNOME, а также на личный опыт автора при разработке приложения Klisi, не на статистику по рынку GUI- и TUI-приложений.

Риски и подводные камни

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

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

— ckardaris, автор блога