Миф о текстовом режиме: почему современные TUI враждебны незрячим
Среди зрячих программистов живёт устойчивое заблуждение: раз приложение работает в терминале, значит, оно доступно по умолчанию. Логика проста — нет графики, нет сложного DOM, нет холстов WebGL, есть лишь поток ASCII-текста, который экранный диктор без труда прочитает. В действительности всё наоборот: многие современные текстовые интерфейсы (TUI) враждебнее к незрячим, чем даже криво написанные графические приложения. Об этом пишет Кейси Ривз, а издание OSnews пересказывает и комментирует его материал.
Поток против сетки
Командная строка по своей природе — это поток данных: свежие строки внизу, старые уходят вверх, линейно, во времени. С такой моделью экранный диктор справляется легко; говорят, что диктофоны уровня ядра делают это весьма достойно. Проблема в том, что фреймворки вроде Ink (JS/React), Bubble Tea (Go) и tcell отказываются от временнóго потока в пользу пространственной раскладки. Экран превращается в двумерную сетку, где каждая символьная ячейка — это, по сути, пиксель.
Программе чтения с экрана такая сетка непонятна. При каждом обновлении интерфейса курсор скачет по всему экрану, и диктор буквально сходит с ума. Показательно, что беда не в самих TUI, а в том, что новые фреймворки игнорируют базовые возможности терминала. Старые утилиты, созданные задолго до этой моды, вели себя дружелюбнее: IRC-клиент Irssi, например, использует области прокрутки VT100 вместо того, чтобы перерисовывать весь экран при каждом изменении, а многие давали опцию просто спрятать курсор.
Парадокс доступности
Здесь скрыта ирония, на которую обращают внимание комментаторы. Хорошо спроектированный графический интерфейс несёт в себе вложенную структуру с метаданными: вот окно, внизу панель с двумя кнопками, левая — «OK», правая — «Отмена». Экранный диктор или ИИ-ассистент читает это без усилий. А «простой» текстовый интерфейс, лишённый такой семантики, требует полноценного визуального распознавания — задачи для машинного обучения, склонной к ошибкам.
В обсуждении звучит и более общий упрёк: часть новых интерфейсов делают люди с установкой «первыми на рынок», выбрасывающие накопленные знания о проектировании взаимодействия. Многие такие TUI рассчитаны не на терминал как таковой, а на конкретное современное терминальное приложение — с Unicode, эмодзи, 256 цветами и быстрым соединением, по которому не жалко спамить прогресс-барами. Стоит подключиться через последовательный терминал — и вместо смайликов сыплется мусор и рваные переводы строк.
Здравые предложения тоже есть. Одни советуют, чтобы у каждой TUI-программы была честная CLI-версия с аргументами, а сам интерфейс оставался лишь обёрткой — тогда вывод можно и в конвейер направить, и диктору скормить. Другие напоминают, что доступность в принципе достижима: например, Go-библиотека huh на базе Bubble Tea заявляет о полноценной поддержке экранных дикторов. Проблема, стало быть, не в терминале, а в том, что о незрячих пользователях просто забывают.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.