Reworking CW/NSFW image systems for better userflow and design


#1

if i picked any one feature that needed some love right now in mastodon it would be the NSFW/CW systems.

the ideal for how they would be used, in my eyes, is simple, they should be combined.

anything under a content warning should be hidden. this includes images.

the follow up to this is, there should be an option to hide the image EVEN AFTER you’ve opened the cw, to allow further description in case its an image that you really need to be careful with.

this applies several positives to the functionality

first: since any image designated will be hidden behind the content warning, there is a SINGLE BUTTON to close the image and text of a post after choosing to read/view both.

this is very good in the case that it turns out to be something you do NOT want to see.

second, since every hidden image REQUIRES a content warning,this means you MUST describe what you are hiding. this is simply logical, in my humble opinion.

if something deserves to be hidden, it deserves to have it explained WHY it is hidden.

final point: get rid of that naming, “NSFW” it’s ableist, sex shaming, and overall entirely devoid of actual explanation of the actual feature being used. a better implementation would be “CW” for content warning and something along the lines of “second layer” for the image-hide-again functionality.

thank you for listening.


#2

As an addendum to this, it would be really neat if the image-hiding system should work such that the image isn’t even downloaded to the web browser until the user clicks. This would allow people who are actually at work to safely use mastodon even if their browser requests are monitored by their employer.


#3

YESSSSS.

There is a Github issue for this. I added a post saying I think they should be entirely combined, and even made a mock-up:

I totally get that people can think of uses for keeping them separate, can think of situations where they’ve been glad they were separate, etc. But honestly at the moment it’s a mess for people who don’t know what CW or NSFW mean (because language barrier or culture barrier), it’s a nightmare for users who don’t get that NSFW is media only and CW is text only, it’s bad for new folks who have to make mistakes and do tests to work out how to use them… Visually and practically, it’s a mess right now. So often I see people post with a CW and an exposed image, expecting the image to be hidden, and have to delete and repost. Since I started promoting that Github issue I’ve even heard from people who say they still get it wrong and have to delete and repost, even though they’ve been using Mastodon for weeks/months.

People should absolutely not have to test things this way or ask how things work for something like this. I get that the two features were developed separately and for separate reasons. But pleeeeease combine themmmmm!


#4

For the record, the default Mastodon web client does already do this, from what I have heard. It’d be nice if that was made a little more clear somehow for peace of mind, and if it were a standard across apps that’d be rad!


#5

Not only is the NSFW label horrendously bad language, Hoodie already brought that up. I don’t need a neon sign repeating everything against why ‘NSFW’ is bad in English, not the least of which is that it declares content unsafe for capitalistic gain, which doesn’t make sense when you’re tagging food or flashing imagery and diminishes sex work (the oldest profession) in a very nasty way.

Something that absolutely needs to be stressed talking about this besides what it means in English is IT DOESN’T TRANSLATE.
Talkin’ to a Swede, who knew English as his second language almost the entirety of his life - No idea what NSFW meant. It doesn’t translate. It must be learned. Any front facing UI element that must be learned is too complicated.
When Pawoo started, they explained how CW and NSFW worked - Using Kanji, and randomly putting in NSFW and CW in the rest of the post. It doesn’t translate. It must be taught.

Which is impossible. It cannot be learned. It cannot be taught.
Because you know why?
It’s INCONSISTENT.
Previously we had the language for "Mark an image as sensitive"
And when someone flags their media as NSFW right now, it gets posted as "Media is marked as sensitive. Click to view."
At no point other than the button does ANYTHING refer to it as NSFW, BECAUSE IT’S NOT DESCRIPTIVE. The rest of the website refers to it as sensitive media.

It’s not even consistent in the post box - When you compose a toot on web Mastodon, you get the camera icon to upload media.
Then you get to choose visibility, from 4 icons THAT EXPLAIN WHAT THEY DO. With changeable text, that even properly converts to Arabic. Hieroglyphic icons that try to convey what they mean but recognize they cannot by image alone, so they explain it.
So, no matter the reading order you get hieroglyphic, hieroglyphic, two instances of the latin alphabet?!
It is a dreadful inconsistent UI and UX element that has such terrible connotations the fact that we accepted the change from a toggle that explained functionality to a button you can’t even see what it does until you post is frankly unacceptable in my eyes and needs to be changed.
When you press NSFW, nothing changes to your post. Only thing is the button highlights.
Let me stress this again and again: It doesn’t translate, has to be learned, it isn’t consistent, and doesn’t change any other visual element other in itself. It is hands down one of the worst changes Mastodon has ever done in my opinion.

We need ONE button, a hieroglyphic, that marks your post as sensitive and in the text before you type into the content warning box explains exactly what this button does, what it’s going do to your post. Right now when you press CW in English, you get a phantom text that explains “Content warning”, which gets the point across it’s the spoiler/show more system if you know the English language. Even as your second. It goes away when you type anything in it and gets out of the way once you know how it works, but it EXPLAINS FUNCTIONALITY BEFORE YOU POST.
It should be a full explanation in every language about what it does to your text and what it’ll do if you have attached media.

There is absolutely no reason for this system to be separate, if you want to post sensitive content without any text - The system already works for that. If you leave both the content warning and the text box empty, it’ll just be a sensitive marked image.
But there is NEVER a reason for why you would give a content warning but not hide the image. It don’t matter what kind of nonsense or statistical data might show to the contrary, if you need a content warning - any attached images must be hidden.

We need to this to be changed, sooner than ASAP - Mastodon ain’t English.


#6

in regards to the hieroglyphic you mention i feel that an eye is best? i think you mean an image such as the lock for private posts etc, yes?


#7

An eye would be consistent with preexisting UI. An eye icon is what lets you hide untagged images and rehide tagged images.
I’m for that.


#8

We’ve previously (in Github threads, I think) discussed glyphs that would represent that functionality; the eye and slashed eye were largely regarded there as the best approach. I raised the concern of which was which - that is, if I click the eye and then see the slashed eye, does that mean that I’ve hidden the image, or that if I click the slashed eye, it will hide the image? But I think a color distinction will help there, as well as an explanation on a potential help/FAQ page.

(This is spinning off into different territory.)

I’m all behind replacing “NSFW” with a glyph, eye or otherwise. I would like four states:

  1. I have done nothing. The text and images in my post are displayed normally.
  2. I have clicked the CW button. The text and images in my post are hidden.
  3. I have clicked the CW button and then clicked the “hide images” glyph. The text is hidden, the images are not.
  4. I have clicked the “hide images” glyph but not the CW button. The images are hidden, the text is not.

An issue: what if I have uploaded an image, accidentally click the CW button, and then unclick it? Should we save state so that we know when an image is hidden because of the CW button and when it’s hidden because I’ve explicitly said to hide it?


#9

You only need two states.
I haven’t clicked. And I have clicked.
If you’ve clicked, you get the text box explaining about this content warnings/show more feature, and about the fact it’ll hide sensitive media if you attach anything.
You can then leave the content warning and the main body box for text if you want to attach an image without saying anything. Leave the content warning blank to get the full body text to appear and the image to stay hidden until someone clicks.
We do not need the ability to hide text without hiding the image. Only reason to have hidden text and shown image is clickbait and manipulative bullshit.
And if we don’t attach an image, it just hides our text.
It is one button.
Two states.
That does what you expect from the kind of content you’re posting.


#10

I am speaking not as an admin but as a contributor:

No. This is just wrong.

I can think of many situations where I might want to hide text but not an image - for example:

  • I am responding to someone who has used a content warning, and want to preserve the content warning just in case, but have an image to attach that I know won’t cause trouble, that is only tangentially related to the text, and that I want to be available to readers without seeing the text.

… or hide an image but not the text - for example:

  • I have innocuous text, but the image included is a flashing GIF or otherwise might cause distress.

It is absurd to imagine that the only people who would ever want the text in and images attached to a post to have different protection levels are bad-faith actors. Always putting them at the same sensitivity level is certainly an easier proposition, but it is almost as far as possible away from a better one.

Edit: Beyond this, we’ve been discussing elsewhere not downloading hidden images until they’re clicked on (this is not even a little bit the place to discuss the merits of that feature request), and with that feature, conflating “hide text” and “hide images” would force people uploading large images who wanted to save their fellow users’ data caps to ALSO hide the text in the post.


#11

it is not just about easiest, noelle. it is about what example the feature sets, and, frankly, as i said before, any image that deserves to be hidden, deserves a content warning.

i don’t really understand where you are coming from in the first part. just, logically my view on it is as follows: images go at the end of a post, always. that is how it works. this is as far as i know, unlikely to change, so reading posts in this context, the user will want to read the text of the post before viewing the image, or at the least, will be expected to view the text first. this works best with the CW feature as it encourages this expected view flow of an image to work with the text of the post, be it hidden or not.

alongside that, seeing as we cannot currently make the user inclined to describe the image being hidden, without a separate text box to request said text.

the content warning box already suits this topic implicitly, and thus i propose it is best combined for both of these reasons. it fits logically, and fits in terms of promoting the best use of the feature, with explanation of why it is hidden by default.

EDIT: i really don’t get how the speaking as an admin or speaking as a contributor matter? it comes across as if you are pulling some sort of rank, somehow, and i really don’t appreciate it. i encourage you explaining how it was intended, though, if you think it relevant.

EDIT 2: [quote=“noelle, post:10, topic:200”]conflating “hide text” and “hide images” would force people uploading large images who wanted to save their fellow users’ data caps to ALSO hide the text in the post.[/quote] as i mentioned, any image that deserves to be hidden deserves a note on why. in your example, the CW would simply be “big image” or “big”

EDIT 3: wording


#12

It is literally the opposite of pulling rank: “I am aware that my status as an admin here might look like me pulling rank and saying ‘this is how it’s going to be’ and I do not want you to take it that way”. I genuinely don’t know how you get from “Please don’t consider me as an admin when I post this” to “I’m pulling rank”.

Regarding the actual discussion, I will be as blunt as possible:

“People should not post images that are unrelated to the text content” and “people will not post images that are unrelated to the text content” - and specifically, “people will not post text that is potentially distressing but images that are not” - are different sentiments, different enough that I believe they must be considered separately.

“Images that are hidden should have an explanation” and “if a post contains text that is hidden and images that are hidden, both should have the same explanation” are different sentiments, different enough that I believe they must be considered separately.

If your experiences lead you to believe that these use cases are rare enough to not be worth considering, we have much different experiences on social media. Again, I’m not saying that that makes me right, or that my opinions are somehow Those Of Mastodon. All I’m saying is that my experience leads me to the conclusion that four states (unhidden, hidden text/unhidden image, hidden image/unhidden text, all hidden) are better than two (hidden/unhidden).


#13

My two cents on this (which are probably closer to a nickel but not a whole dime):

I agree completely that the CW and NSFW terminology needs to be completely reworked.

I also agree that the image could reasonably count as part of the content of a post, and thus be hidden behind a CW.

However, I fail to see the benefit of removing a reasonable level of granular functionality that already exists? There doesn’t seem any really compelling reason to combine the hide-text and hide-image into one single function.

Ideally, in my opinion, we’d have the following functionality:

  • CW would hide the entire contents of the post, except for the warning text. The text would be behind the SHOW MORE button. The image would also be behind the Show More button. I think that’s just a matter of where you wrap your tags, honestly?

  • Image visibility would be a separate toggle and like now would just change whether the image defaults to visible or hidden (blacked out). If it’s marked as hidden and there’s no CW, then it works like it does now. If it’s visible and there’s a CW, it’s visible when you open the CW. If it’s hidden and there’s a CW, then you’d have to open the CW and then toggle the visibility to see the image.

  • For the UI, I think the simplest would be having a slashed-out eye symbol for the button and have it be the active color when it’s marking the image to be hidden, but there are other ways to do that which would work, like other people have mentioned…

An additional feature to add on to that change which I think would work well is if you have an image or file icon on the SHOW MORE button when there’s an image attached to the post. I don’t know how hard that would be to implement, though.


#14

i apologize for the misunderstanding, i did not understand why you were mentioning you were an instance admin in the first place, but now i think you mean because of the badge beside your name. i did not mean to twist your words in any way, and i apologize if i seem to have.

i in no case suggested that they are always the same explanation, i think i did alot for this in my post, in fact i had a clause for it “the follow up to this is, there should be an option to hide the image EVEN AFTER you’ve opened the cw, to allow further description in case its an image that you really need to be careful with.”

i am finding now it would be better worded as “in case the image has its own seperate content warning in the post text”

i in no way intended to DIMINISH the available functionality, simply put the image hiding functionality UNDER the content warning functionality, to ensure there is always at least one warning before the image is shown.


#15

as for the first section, i addressed in my reply to @noelle how it does not in any way remove any functionality, and in fact does exactly as you suggest, if i understand correctly.

for the second, there is already a mockup for this farther upstream, and there is already similar code in existence for showing all users mentioned in a post behind a cw, as such i believe it should be esay to implement.


#16

Oh jeez. Okay, my experience with Discourse is limited; I have no idea what people who aren’t me see. I’m an admin on this forum and a community moderator on mastodon.social, and I wanted to be clear that my opinions should be taken as a user and as someone who might contribute code to the repo, not as someone who has any kind of authority here or on the “flagship instance”. I apologize for the misunderstanding.

I get it. I think we’re on the same page. I just wanted to be really clear about the distinctions I was drawing: both text and image should be able to be marked sensitive (with the eye sigil - I’m right there with you on a better terminology/hieroglyph), and optionally separately, so that if there’s any doubt a user should be able to mark one, the other, or both without issue.


#17

im glad we seem to have come to understand each other. i would like to point out the place i think we might be different, and i do understand that my opinion here is somewhat biased:

an image should not be able to marked sensitive (relating the current functionality, blacking it out without a content warning)
unless there is already a content warning in place.

this might seem arbitrary, so i will quote why, again, just in case anyone tunes in late and misses it

essentially, a content warning WITH THE IMAGE BEING CONSIDERED PART OF THE POST CONTENT, aka, hidden by the content warning, acts the SAME as the sensitive image option does currently, while requiring an explanation of why. it simultaneously allows other text to be viewed, and gives us the option to hide only the image(after opening), or the full post. as such, i do not believe the sensitive image black-out option should be available UNLESS a content warning is already in effect, to encourage users tagging why they are hiding the image, and reduce the “risk” involved in looking at said image

EDIT: to sum up since i realize i may have been unclear: there is exactly one ‘feature’ of current functionality that will be lost. namely, the image cannot be hidden without a content warning, which, when used, effectively serves the same purpose as hiding the image, if there is only an image, but with one upside: forcing the user to supply at least one warning as to WHY the image or text needs to be hidden.

EDIT 2: another positive out of this is a universal “maybe i should be careful” image, the readmore button. i also wanted to mention that the in my experience, rare, use case that the text content should be seen before the picture always, the text can be put in the actual content warning field which i believe could be re-defined in its text as “warning, or other text before the readmore” to better illustrate this, and allow users to understand what they are doing. thus we don’t really lose any functionality, after more thought on it.


#18

also, just as a final note, re Hierolyphics/UI, i would imagine the image hiding option would be the eye, alongside a drop down with three options: an eye when not applying any hiding, an eye crossed out, with the content warning only, and a third one, content warning and hide images, that would only show if there was an attached image, and would require a content warning field be filled out before it could be sent. i imagine this UI looking like the posting level unlisted public and private and the like, where it has an icon and drops down with more text to better describe the feature.


#19

[quote=“hoodie, post:17, topic:200”]an image should not be able to marked sensitive (relating the current functionality, blacking it out without a content warning)
unless there is already a content warning in place.[/quote]

I think your explanation of why is good - namely, making or at least strongly encouraging people to post warnings about why the image is marked sensitive. I’m just not sure it’s the best way to do it?

Rather than continue all the back-and-forth argument about Why or Why Not, I have an alternate suggestion. Can images currently be posted without any text content? If so, could that be changed to require text content?

If that’s feasible, it seems a reasonable compromise between granular control and encouraging people to say what their images are.


#20

On consideration, I can be talked into this, @hoodie; I agree that we should request a reason for hiding images, but my separation of image and text CWs was based on a brief content warning.

In Mastodon, content warnings can be arbitrarily long, up to 500 characters - something that should possibly be communicated to users, but that’s a separate issue.

So it’s reasonable to say that if I want to hide an image but don’t want to hide a text, I can simply put the text in the content warning and hide the image behind it.

Is that right?