Discourse back button sucks

Position might be retained, but navigating between things can be a pain. i.e. Discourse does some trickery that means the ‘back’ button doesn’t work as expected >:( So if you follow any of the arrows you get LOST because you can’t GO BACK, unlike following every other hyper-link in existence. (I was one told there was some set of widgets I could interact with on Discourse to GO BACK but I can’t remember what it is)

I think two version need to be added: One that says “I liked your post” and one that says “I liked the pictures of food in your post. I’m now hungry”.

Within the topic, you are not navigating to a different page, so why would you expect the back button to do anything?

That’s like scrolling way down on any web page, pressing the back button, then getting pissed off because the back button took you to the previous page.

If you move upstream ↑ in the topic, your bottom-most read position will be shown like so.

If you move downstream ↓ you’ve moved your bottom-most read position, so…

I think you’ve been a pro web developer for so long that you’ve forgetton HTML 101 and can only think in terms of magic javajaxquery fancyness and not plain and simple hyperlinks.

Below in the details is some plain, basic HTML. Save this page and open it in a browser. Then click one of the links. Then click your browser’s “back button”. Notice how you GO BACK to what you were looking at. You go back to the EXACT PLACE you were looking at. And you do it all using just the built in browser functionality! You can even use the alt+left alt+right hotkeys for efficient go-backing.

Summary
<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>H-h-h-h-h-hyperlinks</title>
</head>

<body>

	<section id="toc">
	<p>
		<ul>
			<li> <a href="#section1">Section1</a></li> 
			<li> <a href="#section2">Section2</a></li> 
			<li> <a href="#section3">Section3</a></li> 
			<li> <a href="#section4">Section4</a></li> 
			<li> <a href="#section5">Section5</a></li> 
		</ul>
	</p>
	</section>

	<h2 id="section1">Section 1</h2>
	
	<section>
		<p>
			Lorem ipsum dolor sit amet, cu nam tation voluptatum, vel inani dicunt vivendo ad, quo et putent vidisse persecuti. Discere appetere an eos, quo at tale democritum, est dico invidunt mnesarchum ad. Etiam doming sea cu, mel harum periculis id. Ei cum iusto suscipit perpetua, ex vel omnium scripta propriae. Ne detracto qualisque quo, vide falli inciderint pro in.
		</p>
		<p>
			Mei tale idque evertitur et, mei ex altera melius explicari, vel ex solet dissentiunt. Volumus lobortis no per, at usu quas conclusionemque. An eos aliquam honestatis. Ea sea vidit erroribus, his impetus torquatos inciderint cu. Volutpat aliquando ad per.
		</p>
		<p>
			Oblique albucius apeirian mei no. Vim ad debitis suavitate, noster insolens ut mei. Id malorum oportere accommodare eos. Id molestie verterem sea. Ea eirmod minimum laboramus ius, quando civibus laboramus vis ne.
		</p>
		<p>
			Eu meis verterem adipiscing pri, pro te iudico scaevola. An mucius fierent elaboraret pri. Fastidii splendide ullamcorper in sed, dicat regione vix no, pro ex esse decore consequat. Id vix sint complectitur, et nec iisque deserunt honestatis, sea error tincidunt ne. Vim brute liber doctus id, mea cu scripta prompta tacimates.
		</p>
		<p>
			Elit argumentum complectitur duo at, ea qui audiam dolorem pertinax. Ne debet vitae oporteat cum. Iudico quidam salutatus mea ex, id tale soluta possit vel. Harum sensibus mei ad, ne mel sententiae contentiones, sed ei esse cetero interesset. Ius et graeci consequuntur, cu qui essent expetendis, qui omnis soleat omnium et.
		</p>
	</section>

	<h2 id="section2">Section 2</h2>
	
	<section>
		<p>
			Lorem ipsum dolor sit amet, cu nam tation voluptatum, vel inani dicunt vivendo ad, quo et putent vidisse persecuti. Discere appetere an eos, quo at tale democritum, est dico invidunt mnesarchum ad. Etiam doming sea cu, mel harum periculis id. Ei cum iusto suscipit perpetua, ex vel omnium scripta propriae. Ne detracto qualisque quo, vide falli inciderint pro in.
		</p>
		<p>
			Mei tale idque evertitur et, mei ex altera melius explicari, vel ex solet dissentiunt. Volumus lobortis no per, at usu quas conclusionemque. An eos aliquam honestatis. Ea sea vidit erroribus, his impetus torquatos inciderint cu. Volutpat aliquando ad per.
		</p>
		<p>
			Oblique albucius apeirian mei no. Vim ad debitis suavitate, noster insolens ut mei. Id malorum oportere accommodare eos. Id molestie verterem sea. Ea eirmod minimum laboramus ius, quando civibus laboramus vis ne.
		</p>
		<p>
			Eu meis verterem adipiscing pri, pro te iudico scaevola. An mucius fierent elaboraret pri. Fastidii splendide ullamcorper in sed, dicat regione vix no, pro ex esse decore consequat. Id vix sint complectitur, et nec iisque deserunt honestatis, sea error tincidunt ne. Vim brute liber doctus id, mea cu scripta prompta tacimates.
		</p>
		<p>
			Elit argumentum complectitur duo at, ea qui audiam dolorem pertinax. Ne debet vitae oporteat cum. Iudico quidam salutatus mea ex, id tale soluta possit vel. Harum sensibus mei ad, ne mel sententiae contentiones, sed ei esse cetero interesset. Ius et graeci consequuntur, cu qui essent expetendis, qui omnis soleat omnium et.
		</p>
	</section>
	
	<h2 id="section3">Section 3</h2>
	
	<section>
		<p>
			Lorem ipsum dolor sit amet, cu nam tation voluptatum, vel inani dicunt vivendo ad, quo et putent vidisse persecuti. Discere appetere an eos, quo at tale democritum, est dico invidunt mnesarchum ad. Etiam doming sea cu, mel harum periculis id. Ei cum iusto suscipit perpetua, ex vel omnium scripta propriae. Ne detracto qualisque quo, vide falli inciderint pro in.
		</p>
		<p>
			Mei tale idque evertitur et, mei ex altera melius explicari, vel ex solet dissentiunt. Volumus lobortis no per, at usu quas conclusionemque. An eos aliquam honestatis. Ea sea vidit erroribus, his impetus torquatos inciderint cu. Volutpat aliquando ad per.
		</p>
		<p>
			Oblique albucius apeirian mei no. Vim ad debitis suavitate, noster insolens ut mei. Id malorum oportere accommodare eos. Id molestie verterem sea. Ea eirmod minimum laboramus ius, quando civibus laboramus vis ne.
		</p>
		<p>
			Eu meis verterem adipiscing pri, pro te iudico scaevola. An mucius fierent elaboraret pri. Fastidii splendide ullamcorper in sed, dicat regione vix no, pro ex esse decore consequat. Id vix sint complectitur, et nec iisque deserunt honestatis, sea error tincidunt ne. Vim brute liber doctus id, mea cu scripta prompta tacimates.
		</p>
		<p>
			Elit argumentum complectitur duo at, ea qui audiam dolorem pertinax. Ne debet vitae oporteat cum. Iudico quidam salutatus mea ex, id tale soluta possit vel. Harum sensibus mei ad, ne mel sententiae contentiones, sed ei esse cetero interesset. Ius et graeci consequuntur, cu qui essent expetendis, qui omnis soleat omnium et.
		</p>
	</section>
	
	<h2 id="section4">Section 4</h2>
	
	<section>
		<p>
			Lorem ipsum dolor sit amet, cu nam tation voluptatum, vel inani dicunt vivendo ad, quo et putent vidisse persecuti. Discere appetere an eos, quo at tale democritum, est dico invidunt mnesarchum ad. Etiam doming sea cu, mel harum periculis id. Ei cum iusto suscipit perpetua, ex vel omnium scripta propriae. Ne detracto qualisque quo, vide falli inciderint pro in.
		</p>
		<p>
			Mei tale idque evertitur et, mei ex altera melius explicari, vel ex solet dissentiunt. Volumus lobortis no per, at usu quas conclusionemque. An eos aliquam honestatis. Ea sea vidit erroribus, his impetus torquatos inciderint cu. Volutpat aliquando ad per.
		</p>
		<p>
			Oblique albucius apeirian mei no. Vim ad debitis suavitate, noster insolens ut mei. Id malorum oportere accommodare eos. Id molestie verterem sea. Ea eirmod minimum laboramus ius, quando civibus laboramus vis ne.
		</p>
		<p>
			Eu meis verterem adipiscing pri, pro te iudico scaevola. An mucius fierent elaboraret pri. Fastidii splendide ullamcorper in sed, dicat regione vix no, pro ex esse decore consequat. Id vix sint complectitur, et nec iisque deserunt honestatis, sea error tincidunt ne. Vim brute liber doctus id, mea cu scripta prompta tacimates.
		</p>
		<p>
			Elit argumentum complectitur duo at, ea qui audiam dolorem pertinax. Ne debet vitae oporteat cum. Iudico quidam salutatus mea ex, id tale soluta possit vel. Harum sensibus mei ad, ne mel sententiae contentiones, sed ei esse cetero interesset. Ius et graeci consequuntur, cu qui essent expetendis, qui omnis soleat omnium et.
		</p>
	</section>
	
	<h2 id="section5">Section 5</h2>
	
	<section>
		<p>
			Lorem ipsum dolor sit amet, cu nam tation voluptatum, vel inani dicunt vivendo ad, quo et putent vidisse persecuti. Discere appetere an eos, quo at tale democritum, est dico invidunt mnesarchum ad. Etiam doming sea cu, mel harum periculis id. Ei cum iusto suscipit perpetua, ex vel omnium scripta propriae. Ne detracto qualisque quo, vide falli inciderint pro in.
		</p>
		<p>
			Mei tale idque evertitur et, mei ex altera melius explicari, vel ex solet dissentiunt. Volumus lobortis no per, at usu quas conclusionemque. An eos aliquam honestatis. Ea sea vidit erroribus, his impetus torquatos inciderint cu. Volutpat aliquando ad per.
		</p>
		<p>
			Oblique albucius apeirian mei no. Vim ad debitis suavitate, noster insolens ut mei. Id malorum oportere accommodare eos. Id molestie verterem sea. Ea eirmod minimum laboramus ius, quando civibus laboramus vis ne.
		</p>
		<p>
			Eu meis verterem adipiscing pri, pro te iudico scaevola. An mucius fierent elaboraret pri. Fastidii splendide ullamcorper in sed, dicat regione vix no, pro ex esse decore consequat. Id vix sint complectitur, et nec iisque deserunt honestatis, sea error tincidunt ne. Vim brute liber doctus id, mea cu scripta prompta tacimates.
		</p>
		<p>
			Elit argumentum complectitur duo at, ea qui audiam dolorem pertinax. Ne debet vitae oporteat cum. Iudico quidam salutatus mea ex, id tale soluta possit vel. Harum sensibus mei ad, ne mel sententiae contentiones, sed ei esse cetero interesset. Ius et graeci consequuntur, cu qui essent expetendis, qui omnis soleat omnium et.
		</p>
	</section>
	
  
  
</body>
</html>

I don’t really care what Discourse is doing under the hood with all of it’s fancy javascript shenanigans. All I know is:

  1. I click something
  2. I’m now in a disconnected place looking at different stuff
  3. I want to use my industry-standard-since-1992 BACK BUTTON to GO BACK to what I was looking at before.

(Infact me making that page was a waste of time, I could have just linked your own common mark spec that I just looked at to remember that a code fence was 3 ticks and not 4. Click on any of the example links, scroll a tiny bit, then sit there pressing back and forward in your browser. Notice how you can go back and forward between clicked observation points and not lose your place).

As for the Discourse-BACK button that you’re posting pictures of – I don’t see it. If I knew how to record a little video of me using my web browser I would. I could post a screenshot but you’ll just claim it’s been altered or something. But instead I will describe it like so:

  1. Be me. Running any of these web browsers/OS combos:
    • Firefox 50.0.2, Ubuntu 16.04
    • Firefox 50.0.2, Windows 10
    • Chrome 54.0.2840.99, Windows 10
    • Chrome 55.0.2883.87, Windows 10 (it updated as I was looking at the about screen, so you get TWO VERSIONS)
    • Android Chrome, Android
  2. Scroll up a bit from the post I’m currently replying to, to my previous post.
  3. Observe that I’m replying to Stusser
  4. Click one of ^ arrows on Stusser’s quotes.
  5. Be somewhere really far back in the thread.
  6. Notice that there’s no blue ‘BACK’ button like has been claimed
  7. Try clicking the blue 18/35.
    • Caveat: On Desktop, the blue 18/35 thing only appears if you’re replying / your screen is too small. Otherwise you could try clicking on the right hand bar but that just jumps around the thread.
  8. Observe that there’s no back button in the pop-up either.
  9. Notice that pressing your browser’s “back” button (or for Android, the built-into-the-device back button) is nothing but a joke as it’ll take you back a million years to an index page or something rather than back to the post you were just reading.
  10. Just give up and (infinitely) scroll, scroll, scroll, scroll down the page and hope I remember where I came from.

I know you use nothing but Apple devices 24/7, and Apple devices only have a single button, so therefore it’s common for each and every single app in existence to add it’s own “back” button because otherwise the devices would be unusable, but for every other device and system that isn’t made by Apple it’s utterly bizarre. Back buttons are the norm and should just work.

edit: My mouse even has thumb-buttons built into it for the specific purpose of going forward and back. Why does Discourse hate my mouse so much that it doesn’t want to let me use the buttons for their intended purpose?

It’s a crime on par with dicking with the window manager in your app and having the X button open a new window or something.

  1. Enter a topic you have never entered before, with at least let’s say 30 posts.
  2. Scroll down to about half way.
  3. Scroll up 4-5 posts.

(alternately, click on the top date in the scrollbar, or click the title of the topic itself, or press the home key on your keyboard.)

That’s it. Try it yourself if you don’t believe me. G’wan. I dare you. I triple dast dog dare you in fact!

I made a screen recording, just for you. Proof.

That’s kind of cool. That’s never happened to me either. Maybe it’s an option I have turned off in settings somewhere? How do I turn that on?

I have never seen the ‘back’ button consistently appear. Does it only work in threads you have never been in before, or should it always appear if you start moving around a thread? Just went into the ‘Live streaming on YouTube…’ thread, which I have not read in weeks. It had 130+ unread posts and takes me perfectly to my last read position, but nothing I do gets the ‘back’ button to appear if I navigate around the thread.

Latest Chrome on Win8.1 and Win10

Yeah, I get no back button either. Windows 10, Chrome.

I don’t think I’ve ever seen the back button appear either. Just tested those steps on Chrome on OSX and Android and didn’t see it on either.

Though testing reminded me of a couple other niggles that have annoyed me that I might as well bring up here:

  1. The touch target to expand the timeline on mobile is too small and too closely nestled to the bottom edge of the screen. There’s a minuscule sweet spot right along the edge, but over half the time I try to press it, my finger is either slightly too high and nothing happens, or slightly too low and instead triggers the hardware back button on my phone (Note 5).

  2. I want a watch state in between normal and muted (or an account-level setting to always see mentions and replies, even from muted threads). There are any number of threads where I have zero interest in the game being discussed and don’t want to scroll through them in Latest, but if for whatever reason someone in one of those threads is trying to get my attention by name, I don’t want it to be blocked. Because of this, I never use the muted category, and that makes Latest much more cluttered than I’d like.

Ok, so I did this and saw the blue back button. I then tried it again and it didn’t work.

I went to the Turkey Coup thread in the politics forum. I’ve never read that thread. I went half way down. I scrolled up 20 posts and I saw the button.

I then went to the end of the thread and scrolled up, and no matter how far I scrolled the button did not appear.

I then tried it again. I went to the Wells Fargo thread in the politics forum. I used the fake scroll bar to go to 128/138, I then scrolled up lots and never saw it.

Still, whether or not it works (and it doesn’t, as evidenced by @Thraeg’s efforts), it doesn’t change the fact that it’s a terrible design decision and Discourse is wrong for implementing it.

  1. My browser has a back button, respect it.
  2. There’s no need to implement your own back button and get it wrong.
  3. When I click on something, let me go back using the (browser’s) back button.

Not doing so is intentionally breaking simple web browser fundamentals, is completely non-standard and most importantly pointlessly different from every other app. I don’t care if it’s a challenging feature to implement on your infinite scrolling – javascript has history editing functions, so use them,

edit

  1. This is a link elsewhere
  2. This is a link to this thread

Listen: you are on ONE page per topic. You’re not visiting links to different pages, however much you might think you are. It’s one long, scrolling page.

That said, I agree we should improve the lowest read indicator a fair bit.

TRY THE FUCKING SIMPLE BASIC HTML I POSTED.

NAVIGATING BETWEEN HYPERLINKS INSIDE OF A SINGLE PAGE HAS BEEN BASIC BROWSER FUNCTIONALITY SINCE TIM’S BERNERS LEE’S ORIGINAL APP.

STOP BREAKING IT.

Lol. Sorry, this is one page. You’re the only person I’ve ever had this “argument” with.

@wumpus, Pod’s talking about HTML anchors within a single page, so clicking a link to send you somewhere else on the same page will count as a ‘step’ your browser remembers, so you can go backwards and forwards at your leisure.

Yep, Pod is pretty clearly right on this one.

Nope, he’s not. Navigating within the page causing the back button to be broken – that is, the back button not taking you back to the topic list – is a non-starter. That’s like arguing that clicking “expand reviews” on amazon, then pressing the back button, should collapse reviews.

To be honest, I don’t think I’ve ever heard anyone come up with this argument in my four years of working on Discourse.

I do agree that you should always have your lowest read positon shown on the timeline and available to return to, though. And the way the timeline shows your lowest read position is pretty weak right now in a lot of scenarios (not even possible on mobile, but should be). That, I definitely agree with.

Go to a Wikipedia article. Click one of the table of contents items that navigates you to a different part of the page. Hit back. Tell me what happens.

Go to an Amazon page. Click “See more answered questions”. Hit back. Tell me what happens.

This is sort of like the “should links open in a new tab” argument.

These are fundamentally different actions.

Expanding a list is utterly unlike clicking a link and being taken to a wildly different part of the page you were previously navigating. Only one of those actions needs to be gotten back from.

Au contraire, you are in fact expanding the page when you navigate here. Only ~20-40 posts are actually loaded in the browser’s memory at any given time.

Furthermore, breaking the back button – meaning, back no longer takes you out of the topic – is a complete non-starter. It’d result in infinite support tickets. It’s literally the worst Discourse feature idea I’ve ever heard. And I’ve heard a lot.

Anyways, we can all agree: showing your lowest read position and offering an easy way to get back there is quite important and we’re not doing a good enough job of it right now.

I’d mostly like you to stop pretending that your false reality is somehow superseding the actual facts that people present to you, however vehemently and nastily you disagree with them.