Because you triggered Ctrl + Alt + F (or /, same effect.), and that has no default browser binding to fall back to. Try on a larger topic like this one, and use normal Ctrl + F.
Thanks. That seems to be the reason. Anyone know why it is ctrl-alt-f on Chromebooks? Is that the standard keypress there or it is somehow not possible to override on that platform?
I wonder why not be consistent for Discourse across all platforms where possible.
It also yoinks the alt one normally, Iâm on windows for example. Thereâs probably something somewhere here about compatibility or something.
Those users also expect control-f to search in the current URL, which the browser canât do since only 20 posts are loaded. And the pop-up explains that if you want to use the browser function you just need to type control-f again.
Do you have a more intuitive way to allow people to search all the posts in the current topic?
The astounding irony of this.
- Saw email update about this post.
- clicked link and started reading. See this statement:
It would seem like what you would expect is for control-F to find the post you want in that topic, but thatâs not what you want. Whatâs the âfind the post in this topic even if my browser canât find itâ key? Isnât having control-f not find a post in the current topic a violation of expectations?
- Wanting to respond, but realizing I wasnât logged in, I highlighted and copied the text (so I could search/find it after logging in)
- Clicked login in top right of screen and did the whole login thing
- was redirected back to the post, but at the top of the thread.
- pressed cmd-f
- pressed cmd-v
- pressed enter
- finds nothing
Like, you canât make this up. The whole point of this thing is to find things that âarenât on the page yetâ and it doesnât work?
And to respond to the actual comment:
No, itâs not a violation of expectations. The expectations of cmd-f are that if itâs not on the page, nothing is found. cmd-f is not âsearch this âpostââ on the rest of the internet. Youâve created that out of thin air. If the thing isnât on the page, find nothing. Thatâs okay.
Aside #1:
Even when it does find something I canât navigate the results without learning an entirely new paradigm (no, up/down/enter isnât that hard - but itâs different and unique to discourse sites). I also cannot press cmd-f multiple times to iterate through found-results just like I can on the rest of the internet.
Aside #2:
The cmd-f functionality that youâve built has various limitations that the native functionality doesnât have, 'Your search term is too short." being one of them. I tried searching this post for /
because itâs relevant and Iâm unable to do so.
Aside #3:
It seems like a huge stretch that the reason for all of this is because some posts are really really really big and cannot be loaded on the page. I just find that hard to process in todayâs internet with all the options we have for caching at every layer of the stack. Maybe thats the âbugâ worth solving for?
Iâm not sure Iâm 100% following this? Whatâs the issue with pressing it twice? Doesnât that do what you want it to?
While Iâm pressing cmd-f twice should I start triple clicking links too? Shall we implement that?
Itâs kinda profound how badly youâve missed the point here. Youâve changed the default of how a browser works. This is wildly unexpected.
I agree. My expectations are to find in the page. The hijack also breaks ctrl-g ctrl-shift-g behaviour.
It is understandable why Discourse might want to override this due to it breaking the user expectation that all posts for a thread are loaded. However, this might be solved by indicating exactly which posts are loaded or not. The old paginated approach is transparent in this regard.
Having a thread search tool is of course useful, whether in paginated or infinite scroll mode. It is just jarring/confusing to hijack one kind of search with a different kind of search instead of exposing it in a different way e.g. through âthread searchâ button or a hotkey that doesnât collide with standard behaviour.
I donât want to complain too much, as the design decisions are understandable and I have learned to live with it, but I just wanted to point out that I donât think the âviolation of expectationâ assumption is correct.
Thereâs a combination of unexpected things that have to be balanced for the person searching⌠itâs a pick your poison situation.
-
Not all content is available when scrolling for performance reasons. Discourse supports various content like GIFs, videos, polls, calendars, iframes, charts, etc⌠there could be 1000 of these in a topic. Keeping all of this in the DOM can make a page unusable.
-
Users do not know which content is currently loaded, affecting the effectiveness of
ctrl + f
. This expectation assumes all content is on the same âpageâ and thus searchable.
Since the expectation is that ctrl + f
searches the whole page, and the whole page isnât available⌠thereâs an attempted middle-ground.
Youâve already made a couple arguments to attempt to solve this:
-
Disable dynamic content (including images) in posts.
This isnât going to happen â weâd lose every customer we have overnight for any one of the competitors that allows dynamic content (Facebook, Discord, NodeBB, Khoros, Higher Logic, thereâs no shortage).
-
Disable infinite scrolling and use traditional pagination
More possible, but does it really solve this issue? You reduce browser load by only allowing a certain amount of posts to load per page, and users have to manually flip through pages to continue reading.
Now
ctrl + f
works as expected here, but really only as well as your memory.If you just read 100 posts over 10 pages and want to find something you just read⌠is it on page 2? page 3? my memory certainly does not work that well.
So now you end up probably doing something likeâŚ
ctrl + f
⌠backctrl + f
⌠backctrl + f
�
To me it seems there isnât one single great experience here, even if youâre sticking to browser defaults. With Discourse if youâre upset by the lack of the browser default, you have to learn one thing.
Just a friendly note that all posts and discussions should try and remain civil and productive. If things become too argumentative/reductive then Iâm going to close this topic.
Nobodyâs denying this. Just donât hijack cmd-f to do it. Thereâs an uncountable number of other keyboard combinations to choose from. Pick any one of those.
right but the point is that ctrl + f
doesnât work as expected due to automatic paging, so the alternative is suggested first because it will actually search all the content within a topic
so I suppose given all the tradeoffs itâs a choice between explaining:
-
your search didnât work because while you were scrolling we automatically turned the page, so you should click instead (or use
/
which is an alternative shortcut) -
you might have a better time with our search, but if not use the shortcut again
Would you be equally annoyed if we didnât capture ctrl + f
and it didnât work because we loaded some content away while you scrolled? would you then attempt an in-app search as a solution? try scrolling up and then trying again? something else?
Beyond âdonât do it because itâs the defaultâ (which is valid, because expectations) there might be some additional arguments against it to consider as well:
-
most people probably donât use it anyway: Crazy: 90 Percent of People Don't Know How to Use CTRL+F - The Atlantic
(or maybe more like 80% Do 90% of People Not Use CTRL+F? | Blog of Metrics) -
searching 20+ posts earlier with
ctrl + f
might be kind of rare? soctrl + f
for the current âpageâ might be good enough? (total guess, canât find any data on this)
- the overriding is not unique to Discourse. Among other places mentioned, Microsoft office tools also override ctrl+F. And itâs done for similar reasons (ie. not all the text is available to ctrl+F)
- the actual function/intention is not being overwritten. It is a âfind a substringâ function. If ctrl+F was overridden to be the bookmark command, Iâd be sympathetic.
- the naive browser ctrl+F function will often fail with no indication of why. It would be easy to infer the text is not present in the topic when it is not found, which is not guaranteed to be true. In a topic that isnât trivially short, most searches will be false negatives. You place an expectation on the user to have an understanding of the infinite scroll implementation details in Discourse in order to use ctrl+F effectively
- for the people that donât like the overriding, and understand how the pagination of posts works, you just have to press it one more time
If the main problem here is we donât want to break the userâs expectations, then ultimately I would say itâs a bigger evil to break their expectations in a cryptic way (ie. ctrl+F says âno matchâ when the text actually does appear in the topic) then to break their expectation transparently (opening the non-native search bar)
Keep it the way it currently is.
I understand the desire to keep the culture here civil. I support that but please consider moderating users instead. Closing a topic affects the entire community. This is a topic we clearly want to discuss.
I understand your point. The search function should serve two purposes: search for topics or threads and search for keywords within a topic or thread.
I am using âtopicâ and âthreadâ interchangeably, but I hope the meaning is clear.