Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Returning from nested comments should take you back to the original place in the stream #3837

Open
Sentynel opened this issue Jan 7, 2022 · 6 comments

Comments

@Sentynel
Copy link
Contributor

Sentynel commented Jan 7, 2022

Search Terms

nest, nested, thread, return, full discussion

Suggestion

The view for a single or deeply nested comment thread has a "view full discussion" link. This should send you to that comment in the stream, not to the top of the page, or at least a link should be provided that does that.

Use Cases

In the mode where comments can be arbitrarily deeply nested, a "read more of this conversation" link is generated when the nesting exceeds a certain point. Clicking this link takes you to an alternative view summarising the thread up to this point, and then showing replies as per usual. This all works well. This view also has a "view full discussion" link to return you to the full comments thread. This works, but it sends you to the top of the article hosting the comments section in question, meaning you lose your place. Ideally, this would instead send you to the point where you clicked the "read more of this conversation" link - i.e. we'd jump you to the comment whose "read more" link the current view shows.

In the simple case I think this should be reasonably easy to achieve - we already know what comment we want to go to as it's present in this view. There is a complexity for large streams where the desired comment has fallen off the bottom of the "load more" fold; perhaps we'd continue to "load more" until we find the desired comment, or start from that comment tree with a "load previous" button above?

This came up by user request on a particularly large and contentious comment thread we're currently hosting (400 comments so far), though I've previously noticed this myself. There is a workaround in that you can use your browser's "open in new tab" shortcut, but it's not ideal UX. (A simple hack here might be to just make that link open in a new tab by default, but I don't know how you feel about that UX either.)

(As a side note, I'd like to thank you for the excellent moderation tools which make managing said comment thread possible!)

@losowsky
Copy link
Member

Thanks Sentynel! We've actually bypassed all of this by introducing in 6.16.1 a new way to show long conversations, called Flatten Replies. If you've activated this feature, it no longer goes to a new view to see the rest of the thread, and instead flattens the replies at the fourth reply depth.

Try it out and see if this solves your issue!

@Sentynel
Copy link
Contributor Author

Hi @losowsky - I have done a bit of testing now, and I'm actually not particularly a fan of the flattened view. We found flattening at the maximum thread depth caused a lot of user confusion in Coral 4, and the arbitrary thread nesting in Coral 6 was a significant improvement. (Based on direct user feedback, and seeing conversations in our comments where users had become confused.) When comments start getting flattened, it gets really hard to follow the conversation flow. It violates users' expectations, because replies no longer appear next to the comments they're replying to, nor at increased depth. The flattened view in 6 is an improvement over 4 in that I recall that 4 would just arbitrarily reparent overly-deep comments, so the "in reply to " field would be wrong too. But it's still quite possible to end up with comment chains here where it's incredibly unclear which comment is a reply to which. I include a screenshot below of an example.

Subjectively, it's also my impression that deeply nested comment threads tend to be back and forth arguments and hiding them away under the fold is often an improvement because it imposes a small barrier in continuing or piling onto said argument...

Confusion example below. Here, comment "test7" is a reply to comment "test6 g", which is not at all apparent in the UI. (Technically, if you work out you can click "in reply to" you can have the parent comment highlighted, but I'm not sure that's very discoverable and it's still quite annoying to need to do.)
image

@losowsky
Copy link
Member

Hi Sam,

I hear you - I would also suggest trying with multiple users, as it's always going to be more confusing when there aren't different names to follow. Often deeper discussions are just two or three people, so "in reply to" is usually enough context at that depth. You can click on the "In reply to" text to jump to the exact comment it is replying to, and so follow the chain more easily. Does that make sense?

The issue with jumping back to the original place in the stream is that we aren't storing that anywhere, and if it's several paginated places deep, there's no current way for us to reload the stream, open the right amount of pagination (which may have shifted since you were last on the 'all comments' view), and then jump the viewport to the right place.

Here's a thread that includes a lot of branching conversations, including some that go beyond the max indentation, see what you think: https://www.ganggreennation.com/2022/1/12/22879255/new-york-jets-flight-connections-1-12-22?commentID=60b0ffff-f1cd-4c0b-aae3-9c3cce06a1b3

Do try clicking "in reply to" a few times to see if that helps with comprehension.

Best wishes

Andrew

@Sentynel
Copy link
Contributor Author

Yes, that's fair. I've tidied that example up a little bit to be slightly clearer what I think the problem is (excuse MS Paint!):
image

As soon as the conversation bifurcates at or above the maximum nesting depth, it becomes effectively impossible to follow correctly (without tracing each comment via the "in reply to" button). This is also what we saw previously in version 4 - two users having a back and forth is largely fine, but as soon as a third person gets involved somewhere it gets complicated.

I've had a bit of a read through your example and it's certainly possible to follow, but I did find it noticeably awkward. I think the reason is twofold. In general, you only have to look at the comment itself to see what it's replying to because the depth shows it visually, like indented code. But as soon as you hit the length cap, you have to scan at least the previous comment to verify what's a reply to what. More interestingly, I realised that as soon as this had happened to me a couple of times I stopped trusting the indentation and started doing that check on every run of comments at the same indentation depth, which made the whole thing harder to read!

Incredibly subjective, I know. When I get a chance I'll have a look through our production comments database and see if I can find any live examples of nested threads getting confusing when flattened. Either way I appreciate the discussion!

@losowsky
Copy link
Member

Yeah, it's a tough problem - we've done a lot of research around threading and have yet to find an elegant solution that works well on mobile and also works with our architecture. Reddit, Discourse, Slack, Discord... they all have their issues. It's a perennial issue.

One question that might help with our research: if there were a model to show the whole thread of the discussion similar to the View Conversation option in the moderation interface, would that help? How does it look if you choose one of these comments, eg Test 5g, and looked at it in the View Conversation view in the moderation view? Could you imagine a version of that for commenters being useful?

@Sentynel
Copy link
Contributor Author

Is your proposal there to effectively replace what currently happens when you click "read more of this conversation" in the user comments, which is destructive in the sense that it destroys the whole comments view before loading, with something resembling the behaviour of the "view single conversation" modal like the moderation interface has, i.e. showing effectively the same content but non-destructively? Which would let you view the contents of a deeply nested thread without losing your ability to return to your place in the full comments. IMO that would pretty much solve all my problems. I guess my only mild concern is that making it clear from a UI perspective what's happening is a little harder when being mobile friendly than the moderation interface's desktop-only behaviour of an actual dialogue box. But my users seem to expect that clicking "show full comments" at the top of the current view will take them back to where they were anyway, so you'd probably only need a link saying "return to full comments" or similar, and could largely hide from the user that it's effectively a modal at all and just use a UI that's otherwise identical to the current single conversation view.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants