aka back button problem / history in (web-)apps

Часто нет единственно верного поведения

На телефонах, особенно на Android пользователи ожидают чаще что «назад» работает как «закрыть».

На компьютерах чаще тыкают в свободную область, крестик или жмут Escape

На многих реакт сайтах перемещение по истории сломано из-за того что парсинг изменения урла делает history.push добавляя в историю дубли через которые невозможно прорваться без раскрытия всей истории лонг-кликом

Другая причина: про историю не думают, а когда становится проблемой вырубают хаками

Впрочем, мб если нет правильного способа её сделать то выключить её совсем не так уже и плохо? Но тогда это должно делать не хаком, а более явно, иначе пользователь не понимат что происходит.

В классических приложениях переходы по истории делаются ad hoc, например на iOS можно из экрана записи перейти в список или смахнуть панельку объекта вниз и снова увидеть общий список. Во многих визардах apple и e.g. в iTunes есть кнопки назад-вперёд. А в third-party-приложениях истории часто не хватает.

Матчасть

Лирическое отступление: В системах онтологий и например в Jira явно можно увидеть разные типы отношений объектов. Включение, последовательность, подмножество, и разные другие.

Так же и с навигацией. e.g. Запись—Список и Запись—ПанельНастроекЗаписи связаны разными типами отношений, не все из которых человеку существенны.

При перемещении назад может быть важна или одна линия связей (нет однозначного способа понять какая у человека в голове в каждый момент) или Иногда все (назад как «отмена» любого перехода и режима).

Решение?

Частичное. По hover на кнопку назад делать предпросмотр (Continuous Real Preview) того что произойдёт и подписывать суть. Показывать уровни (Link level variation)

На мобильных устройствах hover необходим. Задача решаемая: Hover for mobile

Что думают в интернетах

Что не так с вебовскими stateful фреймворками

UX Notes @

Кристиан Холст из Baymard Institute написал о кнопке «Назад».

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