A call for removal of a:visited on topic list

(Sam Saffron) #1

I am using default theme on meta at the moment while we sort out bullet styling. Of all my changes, the one I am missing most is the suppression of a:visited on the topic list. I just realized why dislike current behavior so much.

It is broken.

Let me explain:

  • You visit a new topic
  • You scroll all the way to the end and read the topic
  • You hit back
  • Topic is not considered “a:visited”
  • You refresh
  • Topic is still not considered “a:visited”
  • You click on the topic again.
  • You click back
  • TADA :confetti_ball: we have an “a:visited”

I visited those two black topics on this actual browser.

This is plainly broken and confusing. Visited means you visited the topic twice, which is insane.

I think a:visited needs to die, if we have to replace it with a smarter cross browser thing, then ok, but current behavior is just crazy confusing.

(this issue is happening cause we never do a replaceState on the last post in a topic so its just not going to be in history, only way to get it into history is click to it from the topic list AFTER you read it)

cc @awesomerobot

(Jacob Chapel) #2

I am all for the removal. I removed it from my variation and definitely prefer it.

I wouldn’t mind some logic to do cross browser read detection, but I think it should be done right and is worth waiting for.

(Jeff Atwood) #3

I would not say it is super common but there have been a few questions about this on sites we host – probably fine to remove those styles from css if you want to.

(Sam Saffron) #5

Done per

side effect is that as anon it does currently work as expected, so I am kind of considering enabling this behaviour for anon. life as anon on discourse kind of sucks anyway so not sure if this really worth it, but a consideration.

(from TDWTF) #6

Don’t you already have the code for that in the logic that shows (NEW) or (X) already?
The only problem with that is that it doesn’t really update when you click the link but the logic should be there, right?


We actually removed this on our forum via CSS because it was unreliable and thus confusing.

(Sam Saffron) #9

I am bringing a:visited back.

Step one, anon gets it:


Step 2 is allowing logged in users to get it intelligently based on if they read the entire topic. (in progress)

(Sam Saffron) #10

Part 2 is now done:


We now add a .visited class on every topic you have completely read. It leads to a richer experience.

If you read an entire topic, but are not tracking it, it will show up in light grey.

Happy with this change cause nothing is random anymore. Light grey == You visited the topic and read everything.

(Jeff Atwood) #11

This server-side a:visited state display such a great change, we should have done this years ago. It’s particularly great on sites where you don’t track a lot of topics, since it is crystal clear what you read, and what you have not:

Tone down the new indicator and change it to mean 'never opened'
(cpradio) #12

I have to say, at first when I saw you were going to work on this, my thoughts were “Oh god why?!?!” but the way it is implemented is far better now. It no longer matters what device I use, the view is consistent and I applaud that.

I’m rather enjoying how I can quickly see what topics I have read versus what I haven’t now with consistency.

(Mittineague) #13

Sorry to be Fluffy

But same with me.

It isn’t something I consciously look for but it it sure does make things a lot clearer “instinctively”


This is a great change. We used CSS to completely disable the visited styling because of how confusing it was.


I just realized that the category view functions this way for anon users but not for logged on users. Is there a reason for that?

Logged on:


Not logged on:

It does seem to work for logged on users for mobile, however:

(Tudor Vedeanu) #16

I think I found a bug: on my forum, if I move a couple of posts from a topic, that topic will never get the “visited” status again. So its title will always be displayed with a dark grey color in the topic listings (which is annoying).

The problem seems to be caused by the “[admin] SPLIT THIS TOPIC” automatic message added to the end of the topic. If I delete it, the topic becomes “visited”.

Using Discourse v1.4.0.beta9 +45 / Docker install.

(Régis Hanol) #17

Yeah it happens here too. Whenever there’s at least one deleted post at the end of a topic it will not show up as “read/visited”.

(Paula Kreuzer) #18

Would it be possible to let users decide in their forum preferences if they want a.visited enabled or disabled?
I personally hate it very much for many reasons:

  • I’m used to “greyed out” meaning “not able to click/open” and even though it’s enabled in our forum for a long time now it will always feel that way.
  • In the fairphone forum, where I read every post every topic is greyed out except for those with a deleted post and the very few topics I muted.
  • On a forum I don’t use that much, like the discourse meta forum it’s easy to overlook the few topics that I do follow on the “latest”-list, because the grey color makes them less visible.
  • Also I think the feature is not at all necessary because I get push notifications from firefox and there are those neat unread and new badges besides the unread topic titles anyway.

Just my personal opinion though. :smiley:

(Jeff Atwood) #19

Probably easier to just override the CSS styles to taste in Admin, Customize.