In Mastodon 2.3.0, CWs are not behaving as expected when the body of the toot is absent but an image is attached.
Input: I add a CW to a toot, attach an image, and leave the body of the toot blank.
Expected behavior: The image is NSFW-flagged, the CW is applied as a standard CW, and the body of the toot remains empty.
Observed behavior: The image is NSFW-flagged, the CW is removed, and the text of the CW is added as the body text of the toot.
Additional information: a toot with a CW but no body text and no image attached won't post at all, even though the Toot button is lit up, since nominally there is no content.
master (If you're a user, don't worry about this).Can you explain the user-level difference between having a CW with no content and having the content be that CW? wouldn't the only observable difference just be a "show more" button that does nothing at all, or am i missing something?
When replying to the post, the CW won't be automatically filled in in the compose column because it was quietly moved to the body of the post.
that makes sense. There's probably a way to fix both of these issues (a vestigial "show more" button and not preserving the CW in replies) but it would be really complicated and hacky, especially when you consider that pre-2.3 instances will still not allow any posts without body text. Maybe this is something we can come back to and clean up when we drop the "." in contentless statuses
Can you explain the user-level difference between having a CW with no content and having the content be that CW?
Yes, easily: one of them is a CW with no content and one of them is a toot with no CW. The user-level difference is exactly the problem. If I, as a user, select "CW" and fill out the content warning, I expect it to behave exactly like every other content warning does. UI consistency is a substantial issue and it's damaging to the project to _reduce_ consistency in the interface's behavior.
edit to clarify: to an end user, this _feels_ like a bug, not a development choice. There's no indication to the user that a CW with an attached image but no toot functions differently from _every other CW_. And the solution is exactly the same as the no-CW solution: add a "." to the body of the toot! It's _precisely_ as "hacky" as that solution is, and has the result that users get the experience they expect.
Since the "show more" button will only expand text, and not images, if you let people write content warnings for empty-text toots, the button will do nothing. If you say, well, why don't we remove the button in that case, then we have arrived at the current state where the content warning replaces the text when the text is empty.
@Gargron except for replies to that toot
@joyeusenoelle i'm not sure i understand what you mean, you're saying we should have a show more button that does nothing? for ui consistency?
@nightpool If that's what it takes for the behavior to not arbitrarily change, then yes. We've established a system where setting a CW on a toot generates a button. Changing that system with no UI indication to the user is unnecessarily confusing.
I want to note, incidentally, that this maintains consistency with the design choice way back when that forced a NSFW filter onto images on any toot with a CW. I argued then that I should be able to upload toots with a CW over the text but without a filter on the image, and was voted down. I accepted that. So we've been telling users for months that if you have a questionable image, use a CW - and now, _from the user's perspective_, we're taking the CW away if they don't put text into the toot. That's a regressive change, and not what we've led the user to expect for the majority of the lifetime of Mastodon.
Okay, I think I understand your position. I just think it would be a lot more confusing to a lot more users if there's a button that does nothing when they click on it.
While we currently insert the "." I would be okay with reverting this change, so that the CW remains a CW above a ".". But the end goal is to have true no-text toots, and in that case... Having a CW with a "Show more" button that does nothing would be really bad. Maybe we could forbid that with validation. That would force people to deliberately move the CW text into the normal text before being able to send off the toot.
@Gargron what about just omitting the "show more" button client side?
I guess? But it's a bit of a weird situation since content warnings themselves are "weaker" than normal text in that you can't use mentions or hashtags or links in them. (Funnily enough the reason you can't, the reason why we kept them plaintext, is so that the copy-on-reply functionality would be possible without ugly hacks). So while the semantically correct meaning is cool, normal text would be better...
As I noted at the top, Mastodon currently forbids posting a toot with a CW but with no body text or image. I feel like expanding that to "with a CW but with no body text, regardless of image" would be the best solution, truthfully. That solves all our problems - as long as we communicate this to users.
Can we use the privacy-setting micro-dialog to say "If you have a CW, you must have text in the body of the toot"?
@joyeusenoelle wouldn't that just undercut the benefit of being able to post text-less statuses? CWs shouldn't be an exception to the end goal of true text-less toots, or else it would feel like we're putting them at a disadvantaged place in the ecosystem.
We're already undercutting the benefit of being able to post text-less statuses by shifting the CW into the body of the status; necessarily if I post a text-less status with a CW and the CW becomes the text, it's no longer text-less!
A different approach is to treat CWed toots exactly the same as non-CWed toots; if there's no text, add a "." and leave everything else alone. This preserves behavior for tooter and for reader.
@joyeusenoelle but doesn't leave us a path forward for dropping the '.' completely.
@nightpool It does, though: when the . is dropped, the toot body should be empty.
I feel like there are two schools of consistency here:
1) The "Show More"/"Show Less" button should visibly do something to the toot, or it shouldn't be present.
This is how it is currently; since the button does nothing, it's elided, and the CW becomes the text of the toot.
2) The text entered as a CW should be a CW, and the "Show More"/"Show Less" button should show and hide the body of the toot, _regardless of the length of the body of the toot_.
This is what I'm suggesting, and what's consistent with the rest of the interface. The "Show More"/"Show Less" button shows the remainder of the toot _even if the remainder of the toot is 0-length_.
Does that make sense?
Since the "show more" button will only expand text, and not images, if you let people write content warnings for empty-text toots, the button will do nothing.
I know I bring this up wherever possible, but having the image and text of a CWed toot both affected by the "show more/show less" button at the same time could be a solution. I'm a big fan of combining Hide Media and CW, because to me having them separate seems needlessly complicated.
Bump. I think Mastodon should not change the CW into text content, because that's simply not the same use. One thing that this behavior breaks pretty hard is the “copy CW on reply” thing: e.g., I have in the past written threads behind a CW, posted an image without text content somewhere in the thread, and after that the CW is lost because the CW was demoted to text content.
I agree that a button that doesn't actually show/hide anything would be pretty confusing, so there are basically two ways forward:
MediaGallery inside the CWed content, like in glitch-soc (and as suggested in https://github.com/tootsuite/mastodon/issues/6825#issuecomment-374130610)I'd be happy to implement either solution.
excuse me, this issue is still quite valid. i wish you'd quit closing issues just because you don't like them.
How would you have labelled it?
The behaviour as described in OP and the title might be unexpected, but is working as intended, and the issue is not worded like a suggestion for change. I have re-opened multiple issues where the wording was changed to be more actionable.
This should be labeled as UI.
Mastodon should keep the CW as a CW even when the text of the toot is blank. The negative influence of the presence of a button that appears to do nothing (in fact, it does exactly what we expect it to: it exposes the rest of the toot, which in this case is zero-length) is outweighed by the positive influence of being able to retain the CW in replies to the toot in question.
The action is, to me, immediately apparent: revert or otherwise undo the change that removes the CW from a zero-length toot and makes the text of the CW into the body of the toot.
Incidentally, isn't this moreso an artefact of the ability to post content-less statuses? Previously, statuses required content and thus image posts would include either the link to the image, or simply a '.' for compatibility. The fact that you can CW an empty status is perfectly natural when you consider the existence of empty statuses as valid. I'd argue the CW-becomes-content behavior makes more sense in a world where empty statuses are not valid.
Anecdotally, yesterday or the day before I saw a post along the lines of "open this to see a dog in a hoodie", with empty content, and an image attachment of a dog in a hoodie. Except, in order to preserve the comedic effect, the post inserted a blank character into the content to prevent the CW from being subsumed. Alternatively, drawing an analogy to email, consider a message that has a subject line but no content.
In glitch-soc, we reverted that behavior, but adding a placeholder emoji to reflect that there is an attachment, and to not have a spoiler button that seemingly does nothing
Le 21 octobre 2018 06:08:54 GMT+02:00, trwnh notifications@github.com a écrit :
Incidentally, isn't this moreso an artefact of the ability to post
content-less statuses? Previously, statuses required content and thus
image posts would include either the link to the image, or simply a '.'
for compatibility. The fact that you can CW an empty status is
perfectly natural when you consider the existence of empty statuses as
valid. I'd argue the CW-becomes-content behavior makes more sense in a
world where empty statuses are not valid.Anecdotally, yesterday or the day before I saw a post along the lines
of "open this to see a dog in a hoodie", with empty content, and an
image attachment of a dog in a hoodie. Except, in order to preserve the
comedic effect, the post inserted a blank character into the content to
prevent the CW from being subsumed. Alternatively, drawing an analogy
to email, consider a message that has a subject line but no content.--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/tootsuite/mastodon/issues/6825#issuecomment-431637317
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
This issue has also created a surprising change in server behavior for apps using the api
Most helpful comment
Bump. I think Mastodon should not change the CW into text content, because that's simply not the same use. One thing that this behavior breaks pretty hard is the “copy CW on reply” thing: e.g., I have in the past written threads behind a CW, posted an image without text content somewhere in the thread, and after that the CW is lost because the CW was demoted to text content.
I agree that a button that doesn't actually show/hide anything would be pretty confusing, so there are basically two ways forward:
MediaGalleryinside the CWed content, like in glitch-soc (and as suggested in https://github.com/tootsuite/mastodon/issues/6825#issuecomment-374130610)I'd be happy to implement either solution.