Mastodon: CW should include the image, too

Created on 6 Apr 2017  ·  44Comments  ·  Source: tootsuite/mastodon

Follow-up to #239 and #460:

Statuses with a content warning should hide & show the image along with the text.

  • [x] I looked through the JS code for a quick fix and did not find one

The CW is handled in StatusContent, while click-to-view images are handled in MediaGallery, and the two components are separated from each other: https://github.com/tootsuite/mastodon/blob/07b166a/app/assets/javascripts/components/components/status.jsx#L100-L102


  • [x] I searched or browsed the repo’s other issues to ensure this is not a duplicate.
expertise wanted ui

Most helpful comment

Hey I'm pretty good at computer and I just accidentally broadcast some comically obscene cartoon smut to the main instance's public timeline, and may not have deleted it had I not thought to double-check how it looked in a logged-out browser. So, you know, FYI.

All 44 comments

Agreed. Content warnings should apply to all content, text, images, and @ usernames.

As it is now, images need to be marked separately, and @ usernames are shown even when they're part of the hidden content (they should only show if they're at the very start to indicate a reply).

I understand there may be technical or historical reasons for the way things work now, but from a user POV it's just counter-intuitive.

I think this is really unexpected behaviour at the moment. If I want to post a picture of a spider, naturally I'd add a CW "spider", and expect the image to be hidden.

Yep. I've seen several people in the timelines now who clearly intended to hide an image with it, not realizing that it's a separate tag on the image upload itself, and so the thing they wanted to put a warning on is plainly visible, and some innocuous, incidental text got hidden instead.

Could at least automatically set the NSFW flag, if that would be an easy enough quick fix.

So, do we have a consensus that in a CW-labelled toot, all other contents (like images and mentions) should be hidden? :) Would be willing to whip together a PR.

@blinry I've seen someone on Mastodon saying that there is a case for keeping it the way it is: it's handy for hiding the URL of an image if you want to show the image and the comment but not the URL. Sort of a way to tidy it up.

However, I've also seen a post that says you can upload an image and then delete the image URL from the toot and the image stays attached to the toot. So that would cancel it out!

*tests it*

Yep, the image stays attached to the toot even if you remove the image URL from the toot. So yes, aside from that I've never seen an argument against putting the attached images behind the CW.

@Cassolotl that breaks federation, though - the image doesn't show up when the post is pulled.

Also, that ""use-case"" is a stupid trick to get around an oddity of the software. That's not really something worth preserving.

@riking

that breaks federation, though - the image doesn't show up when the post is pulled.

Ahhh, I didn't know that.

Also, that ""use-case"" is a stupid trick to get around an oddity of the software. That's not really something worth preserving.

Wow, that's super rude. But also, if people are using it that way then people are using it that way and they're not going to stop or not be disappointed just because you said they're stupid.

(the impression I got was that "stupid" was meant to be "the software uses this stupid trick to work around image attachments not federating, where it falls back on the arbitrary URL thumbnailer for other instances but on the local instance it behaves differently" and not "the people who discovered and used this quirk are stupid." At least, it mirrors how I typically call my own code stupid 😉)

(Oh okay, that's not so bad...! If that is the case, I'm sorry @riking!)

I believe I was the person @cassolotl mentioned, and yes, I believe that
keeping the affordance for hiding text content separate from the affordance
for hiding image content is a good thing. I think that there are multiple
use cases served by keeping them separate that unifying them would not.

A good example is a longer discussion behind a cut, with images as an
attention grabber or hook. Another example is linking and citing sources
for an aesthetic post—they often take up multiple lines, so having them
behind a show more is preferable. Another one is the workaround already
mentioned.
On Sun, Apr 23, 2017 at 10:58 AM Cassolotl notifications@github.com wrote:

(Oh okay, that's not so bad...! If that is the case, I'm sorry @riking
https://github.com/riking!)


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tootsuite/mastodon/issues/1010#issuecomment-296449105,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAORV6xfCoA76FAJk5J1z2Mx9VZcMQdXks5ry2cFgaJpZM4M071U
.

If someone is avoiding a subject to avoid mental health repercussions, what's the likelihood they want to see an attention grabbing image about that subject?

In any case, adding a CW should default the image to NSFW-hidden, leaving the option available to un-hide it for non-semantic use of the feature like the ones you describe there.

@liffy the longer discussion in the case I mentioned is not necessarily
about a sensitive topic. It's just longer, and the cw field is serving only
to hide for length, and as a title, nothing else.
On Sun, Apr 23, 2017 at 11:57 AM liffy notifications@github.com wrote:

If someone is avoiding a subject to avoid mental health repercussions,
what's the likelihood they want to see an attention grabbing image about
that subject?

In any case, adding a CW should default the image to NSFW-hidden,
leaving the option available to un-hide it for non-semantic use of the
feature like the ones you describe there.


You are receiving this because you commented.

Reply to this email directly, view it on GitHub
https://github.com/tootsuite/mastodon/issues/1010#issuecomment-296453003,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAORV5yoZsYHOX-3dkRbCQCJyL1VY9lfks5ry3TOgaJpZM4M071U
.

I get that. That would be using the "content warning" feature for something other than a warning, right? The feature should work best for its intended case, and incidental usage for other purposes shouldn't force it to stay broken.

@nightpool Thank you, I couldn't remember who it was! I'm glad you noticed and chipped in better than I could.

@lifning Or it could be redesigned somehow to serve both purposes.

@lifning It's hard to talk about the "intended purpose" of software separate from the behaviors it affords. In this case, we have two affordances, one for hiding text, and one for hiding images. I strongly believe the software should afford both of these use-cases equally. If you think that hiding both is a more compelling use case and we should get rid of the affordances for hiding either individually, then it's fine to disagree with me on that.

I think that there are a lot of use-cases for "content warnings" that include hiding the two separately—it's not inherent that it's using the affordance for something other then a warning. I think that hiding both would add a very awkward limitation. You also have to think about people who want to hide images but don't need to hide their text (which is honestly 90% of hidden images i've seen on mastodon).

There needs to be a way to put media behind content warning. Having seperate buttons will probably confuse users (or will at least make it complicated from a UI standpoint). IMO Content warning tweets should _just_ display the content warning by default. Everything else (including media) should be hidden until i've manually selected them to show.

My user story goes like this: The user wants to discuss spiders. They write something about a spider species, and add an image. Then they think: "Oh wait, some people are scared of spiders, I should add a CW!" They click the CW button, type "spiders" into the text box, and click "Toot".

Result: Many disturbed arachnophobes.

The interface should make it perfectly clear what is hidden and what is not. If the CW feature is intended to be used as a content warning, it should hide all images as well, always. If people want to use it for different purposes, it should be renamed to "hide text" or something like that.

What I was also trying to convey: We're not going to attract a lot of users, if posting a toot involves a detailed study of fifteen UI elements. Less, in this case, certainly is more. I do _not_ want to have too many options. I am very explicitly against configuring a toot seperately from its related media.

Yeah okay, my mind is changed, I think the CW should hide the media in all cases.

I like the ability to apply CW & NSFW separately.

At first I thought it was nonintuitive, but in practical use, I now think that the ability to choose which parts to shield is a good design choice.

Use case: I want to post about a movie. Text content contains nothing upsetting, but movie still has nudity or gore.

I do agree the interface could be a little more streamlined and intuitive in how to mark media versus text, but I like the separation of the function, and being able to mix visibility levels in a single post.

Maybe something like a spoiler line in the post box; text & media inserted above the line are visible, if they're below the line, the reader will have to click "show more" to see it.

To me, I believe the best behavior would be for separate control, but default behavior. I mean, if an image has been added to a toot and someone adds a spoiler, automagically select the NSFW Hide image option. Then, allow for it to be disabled independently. Similarly, if a toot already has a spoiler cut and an image is uploaded, default the NSFW option to on. Again, allow it to be turned off. So at the time of uploading and at the time of adding a spoiler, set the NSFW image setting to true. But always allow for it to be disabled. This will improve usability without losing the fine grain permission controls.

I modded my instance to always treat images within a CW'd toot as NSFW (see #2666), and to be honest, there were quite a number of cases where I thought the image ought not to have been NSFW. Generally, these were cases where CW was being used to hide "bonus material" like sources, detailed descriptions, etc.

Here are two complementary ideas I'm thinking of:

POSTING:
Modify the web UI so that CW selects NSFW by default, but NSFW can be intentionally unselected by the tooter.

a) A tooter enables CW, types some text, and adds an image. The NSFW bit would be set.
b) A tooter types some text, adds an image, and then enables CW. The NSFW bit would be set.
c) a or b occur, but the tooter de-selects NSFW. The NSFW bit would be unset. (What if more images are added?)

VIEWING:
Hide the image itself within the CW Show More roll-down, so that the image is totally hidden (not just covered) until the text is expanded. (An icon to indicate the existence of an image in there might be handy, for those cases where one might be OK reading a description of spiders, but not expecting to see an image therein.)

a) A toot with no CW, media, NSFW: same as it is now (full toot appears in timeline, thumbnails masked)
b) A toot with CW, media, NSFW: the CW text would appear, along with the Show More button and an icon indicating media within. Clicking the Show More button would unfurl the main text and the images. The images would be masked in normal NSFW fashion.
c) A toot with CW, media, no NSFW: same as b, but the images would not be masked after being unfurled.

This would negatively affect a use-case I hinted at the start of this comment. Consider crafting toots for showcasing photographs. One might use the CW text for the title of the work, then put all the metadata in the main text to keep the timeline view clean. Something like:

spoiler_text: Still Life of Cheese
content: This photograph was taken in the cheese aisle at my local grocery store using a camera I built out of a potato. Kodak Professional T-Max 400, ISO 420, f/6.9, developed using pickle brine and ammonia on the first full moon of spring 2016. etc, etc
media: (jpeg of cheese)

(Suggested workaround could be to do two toots: one public with the photo (no CW, no NSFW), and then an unlisted reply with the metadata.)

I wonder if CW and NSFW the totally wrong terms to beign with? Half of the "no it should stay seperate" folks describe use cases far from CW and NSFW.

I think the first of those ideas would be sufficient, at least, before
delving into the more nuanced space of changing how viewing works.

(In your arachnophobia example, how would the user expand the text while
keeping the image hidden? As it is now, you can expand CW'd text but not
click the hidden image, and that functionality should probably stay around.
And of course, if I were posting the spider imagery and text, I would
appreciate the UI automatically setting the "NSFW" bit for me so I don't
forget 😉)

On May 4, 2017 8:01 AM, "R Tucker" notifications@github.com wrote:

I modded my instance to always treat images within a CW'd toot as NSFW
(see #2666 https://github.com/tootsuite/mastodon/pull/2666), and to be
honest, there were quite a number of cases where I thought the image ought
not to have been NSFW. Generally, these were cases where CW was being used
to hide "bonus material" like sources, detailed descriptions, etc.

Here are two complementary ideas I'm thinking of:

POSTING:
Modify the web UI so that CW selects NSFW by default, but NSFW can be
intentionally unselected by the tooter.

a) A tooter enables CW, types some text, and adds an image. The NSFW bit
would be set.
b) A tooter types some text, adds an image, and then enables CW. The NSFW
bit would be set.
c) a or b occur, but the tooter de-selects NSFW. The NSFW bit would be
unset. (What if more images are added?)

VIEWING:
Hide the image itself within the CW Show More roll-down, so that the image
is totally hidden (not just covered) until the text is expanded. (An icon
to indicate the existence of an image in there might be handy, for those
cases where one might be OK reading a description of spiders, but not
expecting to see an image therein.)

a) A toot with no CW, media, NSFW: same as it is now (full toot appears in
timeline, thumbnails masked)
b) A toot with CW, media, NSFW: the CW text would appear, along with the
Show More button and an icon indicating media within. Clicking the Show
More button would unfurl the main text and the images. The images would be
masked in normal NSFW fashion.
c) A toot with CW, media, no NSFW: same as b, but the images would not be
masked after being unfurled.

This would negatively affect a use-case I hinted at the start of this
comment. Consider crafting toots for showcasing photographs. One might use
the CW text for the title of the work, then put all the metadata in the
main text to keep the timeline view clean. Something like:

spoiler_text: Still Life of Cheese
content: This photograph was taken in the cheese aisle at my local
grocery store using a camera I built out of a potato. Kodak Professional
T-Max 400, ISO 420, f/6.9, developed using pickle brine and ammonia on the
first full moon of spring 2016. etc, etc
media: (jpeg of cheese)

(Suggested workaround could be to do two toots: one public with the photo
(no CW, no NSFW), and then an unlisted reply with the metadata.)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tootsuite/mastodon/issues/1010#issuecomment-299211738,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmZU6jQqTmACunxm7hTMWaEFRNBL7tLks5r2eg-gaJpZM4M071U
.

I posted this on Mastodon a few days ago and it got some likes and reposts, so I thought I'd throw the useful bit here:

Rolling together the NSFW and CW buttons into one "hide" button. It puts the text and any media fully hidden behind a CW, and when you click "see more" it shows both.

You can put "CW: NSFW" in the description if it is, indeed, not safe for work.

Keeping the two settings separate to me feels a bit feature-creep-y, if that's the right term? Like, it's keeping things needlessly complicated for some users who like to take advantage of the complexity, but for average users and folks with accessibility needs it is not intuitive and leads to mistakes. People shouldn't have to read the manual or do informal testing to work out how to use these features, but they do. I think combining them would help a lot.

Edit: That little picture icon could go above the "see more", if folks would think that was helpful, to know in advance of clicking "see more" that there will be media?

screen shot 2017-05-04 at 18 01 12

Edit again: Here's the post and people's comments!

Edit again: To be clear, making one button automatically trigger another button, which can then be deselected by the user, is adding complexity. I am not into that for this feature - it was already too complex!

Just wanted to add a mock-up so folks know what I'm proposing:

mock-up of see more

Edit: Some responses from Mastonauts.

a suggestion was provided by @hoodiek and it is as follows:

clicking the CW option would have options appear beneath toot button, checkboxes that both default to on for "hide image" and "hide text"

this is my favourite proposal so far. what do y'all think?

I'm gonna try to combine all the views in one post here, so that there's a summary of the overall feel of the thread - it's a bit all over the place in parts, slightly my fault there.

If I've miscategorised anyone let me know and I'll rearrange!

CW hides images in all cases - 19x 👍, 4x ❤

  • ccoenen (3x thumbs-up and then another post with 4x thumbs-up)
  • blinry (x4 thumbs-up)
  • cassolotl (5x thumbs-up, 4x heart)
  • cassolotl's mock-up (3x thumbs-up)

CW should include image (unspecified) - 11x👍, 2x❤

  • Original post, 11 thumbs-up, 0 thumbs down.
  • Kimik0
  • blinry
  • lifning (1x heart)
  • blinry can do a PR (1x heart)

CW and NSFW are the wrong terms/symbols - 1x 🎉

  • ccoenen (1x party thing)

CW default-hides images, which can be unhidden - 2x 👍, 1x 👎

  • lifning (1x thumbs-up)
  • nightpool
  • stephenburgess8 (1x thumbs-up, 1x thumbs-down)

Text and media above the line are visible, below the line are not visible

  • fsnk

Something complex that I can't really understand

  • rtucker

CW makes two checkboxes appear: text, media - 1x 👎

  • beatrix-bitrot (1x thumbs-down)
  • hoodiek

I think the idea @fsnk mentioned at the end of their post was good.

When a CW is used in a toot, it appears as "text [button] more text", where the "more text" part is hidden until the button is clicked. There's no indication that the text before the button is different from the text after it. And users don't expect it to be different, as seen for example in #699. Only when composing a toot or looking at the source code/API is it apparent that the software treats them as separate things.

If we look at a CW not as a thing separate from the rest of the toot but instead as a separator within the toot, it matches what is seen on screen, and the behavior that users expect, i.e. stuff before the separator is shown, stuff after it is hidden. On LiveJournal and some other forums such a things is called a "cut".

This also removes the confusion over which/why images are hidden or not, and allows the people who said they want to treat text and images separately to do so.

Seems like a good solution, no?
Only problem is that the software and API would need changed a bit to accomodate this, so the programmers will probably veto it right away :(

Yeah, I suspect you're right that it's not possible without a radical redesign, though I don't understand the subject enough to explain why!

This is marked "high priority" and "help wanted" (awesome, by the way! Thanks!), but there's no clear guidance from any lead devs what they've decided is best and what they want people to help them code.

Could someone (@gargron? @wxcafe?) appear majestically and describe what exactly the plan is? This thread is very confused and disjointed, and I can imagine any contributors coming to it for the first time looking to help out in a big way might be confused about what they're meant to be doing!

I'm not a lead dev (in fact, I'm not a dev at all, I just try to help out on issues, PRs and docs).

I'm going to first describe what my opinion is, and second describe what I've understood the plan is for this.

I believe CWs definitely should include images. Images are content too, there's almost no valid use-case for people to CW the content but not the image or vice-versa, and it's really confusing to new users. If anything, having a CW button that makes checked checkboxes appear for 'text' and 'images' is a good solution.

Now, I think @Gargron doesn't agree with this, and there's internal discussion about this between people who work on Mastodon. Afaict there hasn't been a firm decision taken yet.

My conclusion here being : Gargamel pls fix the cw-jos. pls.

@wxcafe Thank you, that is very helpful!

There's a pull request here, which currently results in...

01

02

Hey I'm pretty good at computer and I just accidentally broadcast some comically obscene cartoon smut to the main instance's public timeline, and may not have deleted it had I not thought to double-check how it looked in a logged-out browser. So, you know, FYI.

I'm veering towards making a present spoiler_text enforce a true sensitive, and unifying "show more" and "show sensitive media" into a single toggleable state

I think that the main problem here is to separate two different use cases:

  1. A toot has a Content Warning.
  2. A toot has a Title.

As Mastodon toot didn't have any other "Title" except "Content Warning" users naturally started to use it as a convenient way to create "a spoiler" for any toot. Hiding both text and image(s) is natural for a general purpose spoiler also.

Please note that usage of a "general purpose title" not necessarily requires hiding a text. On the contrary, CW does require this hiding...

Well, it's not a title, it's a content warning. If people collectively demand a title, this could be added. But this would be a different discussion, in my opinion.

Yeah, agreed. Using the CWs as a title is not intended behavior and while it's something that might be cool for users, it's not the use we want to prioritize here. Plus hiding the images doesn't change much in that use case: your title is still visible to people viewing your post and still conveys an idea of the content, and the button still says "show more".

@ccoenen @wxcafe I understand that "title" is a different thing. For developers :-)
But ordinary users use the system as they like, not necessarily as you envisioned. Such users think: "Why not use "CW" as a general purpose title?!" I guess this is why so many opinions are expressed in this and related issues...

I am not at all against a title. But if one is desired, then let's give them one. A real one. So they don't _have_ to resort to workarounds. Can we please leave this branch of the discussion? This is not getting us anywhere.

Was this page helpful?
0 / 5 - 0 ratings