Отключить переопределение cmd/ctrl-f

Поскольку вы нажали Ctrl + Alt + F (или /, эффект тот же), а для этого сочетания нет стандартного привязки в браузере, к которой можно было бы обратиться. Попробуйте на более крупной теме, например этой, и используйте обычное Ctrl + F.

2 лайка

Спасибо. Похоже, это и есть причина. Кто-нибудь знает, почему на Chromebook используется сочетание Ctrl+Alt+F? Это стандартное сочетание клавиш там, или на этой платформе его каким-то образом невозможно переопределить?

Интересно, почему нельзя обеспечить единообразие для Discourse на всех платформах, где это возможно.

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

Эти пользователи также ожидают, что Ctrl+F будет выполнять поиск по текущему URL, чего браузер сделать не может, так как загружены только 20 сообщений. В всплывающем окне объясняется, что если вы хотите использовать функцию браузера, достаточно просто снова нажать Ctrl+F.

Есть ли у вас более интуитивный способ позволить пользователям искать среди всех сообщений в текущей теме?

2 лайка

Невероятная ирония этого.

  1. Увидел обновление по электронной почте об этом посте.
  2. Перешёл по ссылке и начал читать. Увидел это утверждение:
    Казалось бы, логично ожидать, что Ctrl+F найдёт нужный пост в этой теме, но это не то, что нужно. Какая клавиша позволяет «найти пост в этой теме, даже если браузер не может его найти»? Разве не является тем, что Ctrl+F не находит пост в текущей теме, нарушением ожиданий?
  3. Хотел ответить, но понял, что не авторизован, поэтому выделил и скопировал текст (чтобы найти его после входа в систему).
  4. Нажал «Войти» в правом верхнем углу экрана и выполнил процедуру входа.
  5. Меня перенаправило обратно к посту, но в начало обсуждения.
  6. Нажал Cmd+F.
  7. Нажал Cmd+V.
  8. Нажал Enter.
  9. Ничего не нашёл.

Не может быть, чтобы такое придумали. Весь смысл этой функции — находить вещи, которых «ещё нет на странице», а она не работает?


А теперь в ответ на сам комментарий:
Нет, это не нарушение ожиданий. Ожидания от Cmd+F таковы: если чего-то нет на странице, ничего не находится. Cmd+F — это не «поиск этого «поста»» в остальной части интернета. Вы это придумали из воздуха. Если чего-то нет на странице, ничего не находится. Это нормально.

Замечание №1:
Даже когда что-то находится, я не могу перемещаться по результатам, не изучив совершенно новую парадигму (нет, стрелки вверх/вниз и Enter — это не так уж сложно, но это другой подход и уникальный для сайтов на платформе Discourse). Также я не могу несколько раз нажимать Cmd+F, чтобы перебирать найденные результаты, как это делается в остальной части интернета.

Замечание №2:
Функционал Cmd+F, который вы реализовали, имеет различные ограничения, которых нет у нативной функции. Например, «Ваш поисковый запрос слишком короткий». Я попытался найти в этом посте символ /, так как он актуален, но не смог этого сделать.

Замечание №3:
Кажется большим натяжением утверждение, что причина всего этого в том, что некоторые посты действительно очень-очень-очень большие и не могут быть загружены на страницу. Мне трудно это принять в современном интернете, где есть множество вариантов кэширования на каждом уровне стека. Возможно, это та самая «ошибка», которую стоит исправить?

1 лайк

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

1 лайк

Пока я дважды нажимаю cmd-f, мне тоже стоит начать трижды кликать по ссылкам? Может, стоит это реализовать?


Как разительно вы упустили суть. Вы изменили поведение браузера по умолчанию. Это совершенно неожиданно.

3 лайка

Я согласен. Мои ожидания заключаются в поиске на странице. Такое вмешательство также нарушает поведение комбинаций ctrl-g и ctrl-shift-g.

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

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

Я не хочу слишком сильно жаловаться, так как решения по дизайну понятны, и я научился с этим жить, но хотел лишь отметить, что, по моему мнению, предположение о «нарушении ожиданий» неверно.

Существует комбинация неожиданных факторов, которые необходимо сбалансировать для пользователя, осуществляющего поиск… это выбор из двух зол.

  • Не весь контент доступен при прокрутке по соображениям производительности. Discourse поддерживает различные типы контента: GIF-анимации, видео, опросы, календари, iframes, диаграммы и т. д. В одной теме может быть до тысячи таких элементов. Хранение всего этого в DOM может сделать страницу непригодной для использования.

  • Пользователи не знают, какой контент в данный момент загружен, что снижает эффективность ctrl + f. Это ожидание исходит из предположения, что весь контент находится на одной «странице» и, следовательно, доступен для поиска.

Поскольку ожидается, что ctrl + f будет искать по всей странице, а вся страница недоступна… предлагается компромиссное решение.

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

  • Отключить динамический контент (включая изображения) в постах.

    Это не произойдет — мы потеряем всех наших клиентов за одну ночь в пользу любого конкурента, который позволяет использовать динамический контент (Facebook, Discord, NodeBB, Khoros, Higher Logic — список бесконечен).

  • Отключить бесконечную прокрутку и использовать традиционную пагинацию.

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

    Теперь ctrl + f работает как ожидалось, но только настолько, насколько хороша ваша память.

    Если вы только что прочитали 100 постов на 10 страницах и хотите найти что-то, что вы только что прочитали… это на странице 2? на странице 3? Моя память определенно не работает так хорошо.

    Так что теперь вы, вероятно, будете делать что-то вроде: ctrl + f… назад, ctrl + f… назад, ctrl + f…?

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

8 лайков

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

7 лайков

Никто это не отрицает. Просто не перехватывай cmd-f для этой цели. Существует бесчисленное множество других сочетаний клавиш на выбор. Выбери любое из них.

3 лайка

Верно, но суть в том, что Ctrl + F работает не так, как ожидается, из-за автоматической подгрузки страниц, поэтому сначала предлагается альтернатива, поскольку она действительно ищет по всему содержимому темы.

Таким образом, учитывая все компромиссы, выбор сводится к тому, как объяснить:

  • ваш поиск не сработал, потому что пока вы прокручивали страницу, она автоматически переключилась, поэтому лучше нажать :mag: (или использовать / — это альтернативная горячая клавиша);

  • возможно, наш поиск окажется удобнее, но если нет — попробуйте снова воспользоваться горячей клавишей.

Разве вы не разозлились бы так же сильно, если бы мы не перехватывали Ctrl + F, и он не работал бы, потому что при прокрутке подгружался новый контент? Попробовали бы вы тогда поиск внутри приложения как решение? Или стали бы прокручивать вверх и пробовать снова? Или что-то ещё?

Помимо аргумента «не делайте так, потому что это стандарт» (что действительно важно из-за ожиданий пользователей), стоит рассмотреть и другие доводы против:

  • скорее всего, большинство людей всё равно не используют эту функцию: Crazy: 90 Percent of People Don't Know How to Use CTRL+F - The Atlantic
    (или, возможно, даже около 80%: Do 90% of People Not Use CTRL+F? | Blog of Metrics)

  • поиск по 20+ предыдущим сообщениям с помощью Ctrl + F может быть довольно редким случаем? Так что поиск по текущей «странице» может быть вполне достаточным? (чисто предположение, конкретных данных по этому вопросу найти не удалось).

7 лайков
  • Переопределение не уникально для Discourse. Среди прочего, упомянутые инструменты Microsoft Office также переопределяют Ctrl+F. И делается это по схожим причинам (то есть не весь текст доступен для Ctrl+F).
  • Сама функция/назначение не перезаписывается. Это функция «поиск подстроки». Если бы Ctrl+F был переопределен на команду закладки, я бы отнесся к этому с пониманием.
  • Наивная функция Ctrl+F в браузере часто не срабатывает без указания причины. Легко сделать вывод, что текст отсутствует в теме, когда он там есть, что не гарантировано. В теме, которая не является тривиально короткой, большинство поисков будут ложноотрицательными. Вы возлагаете на пользователя ожидание понимания деталей реализации бесконечной прокрутки в Discourse для эффективного использования Ctrl+F.
  • Для тех, кто не любит переопределение и понимает, как работает пагинация постов, достаточно просто нажать ещё раз.

Если основная проблема в том, что мы не хотим нарушать ожидания пользователей, то в конечном итоге я скажу, что большее зло — нарушать их ожидания загадочным образом (то есть Ctrl+F показывает «совпадений нет», хотя текст действительно присутствует в теме), чем нарушать их ожидания прозрачно (открывая не родную панель поиска).

Оставьте всё как есть сейчас.

8 лайков

Я понимаю желание сохранить здесь цивилизованную атмосферу. Я поддерживаю это, но прошу рассмотреть возможность модерации пользователей. Закрытие темы затрагивает всё сообщество. Это тема, которую мы явно хотим обсудить.

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

Я использую термины «тема» и «ветка» как взаимозаменяемые, но надеюсь, что смысл понятен.