-
Notifications
You must be signed in to change notification settings - Fork 379
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
MSC4193: Spoilers on Media #4193
base: main
Are you sure you want to change the base?
Changes from all commits
4fa0d2f
e9f4c44
88dc5d0
c8fa949
c1e9fb4
932352b
cd84c40
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# MSC4193: Spoilers on Media | ||
This proposal aims to enhance the protocol with more ways to make other users feel comfortable while using the protocol. | ||
## Background | ||
Matrix includes a way to add a spoiler to text, which hides the text from visibility without explicit user interaction to show the hidden text. However, there is no official way to do this with images. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The existing spoilers work on all message types that support
Since 1.10 images actually fall into that category, too, through their media captions. So with this proposal it's now possible to have an image itself be behind a spoiler with its caption behind another spoiler. This made me wonder if we'd need some form of UI guidance on how to treat this situation? For instance, should the spoilers be revealed together or separately? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd say that spoilers should be done separately. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd imagine most people would want to configure each separately, as the caption may tell people what is inside the image to help them know whether they want to view it? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That sounds sensible and I think c1e9fb4 has addressed it accordingly. |
||
## Proposal | ||
Some other chat protocols, like Discord or Telegram, offer a way to hide potentially sensitive or triggering images in a way that requires the user to explicitly interact with it to show the image. | ||
|
||
In the event that a message has both a spoiler on the body and the image, clients should reveal the spoilers separate from each other. | ||
|
||
In events with an image, there will be an optional `m.spoiler` field as a boolean. If true, then clients should show a blurred version of the image. If not present, it will be assumed to be false. There will also be a `m.spoiler.reason` field as a text value that will optionally display text for why the image has a spoiler. | ||
clokep marked this conversation as resolved.
Show resolved
Hide resolved
|
||
## Example | ||
``` | ||
"body": "amazing-test.png", | ||
"info": { | ||
"size": 12607, | ||
"mimetype": "image/png", | ||
"w": 1235, | ||
"h": 473, | ||
"xyz.amorgan.blurhash": "L3TSErUbl9y?u*VEkWnit,tlayWB" | ||
}, | ||
"msgtype": "m.image", | ||
"m.mentions": {}, | ||
"m.spoiler": true, | ||
"m.spoiler.reason": "Shockingly bad graphic design", | ||
"url": "mxc://chat.blahaj.zone/UMjvQObiMNEyMunrldKQVYcT" | ||
``` | ||
## Potential issues | ||
A user with malicious intent may put something inappropriate in the reason field. Additionally, clients that do not support this feature will show all media without a spoiler. | ||
## Alternatives | ||
One alternative is the [Spoilerinator](https://codeberg.org/cf/spoilerinator) tool. However, it depends on HTML, which not all clients implement, and it needs you to copy the media URL, then running the external tool. Additionally, [MSC3725](https://github.com/matrix-org/matrix-spec-proposals/pull/3725) provides a similar way to do this. | ||
## Security considerations | ||
None, hopefully. | ||
## Unstable prefix | ||
Until this is stable, clients should use `page.codeberg.everypizza.msc4193.spoiler` and `page.codeberg.everypizza.msc4193.spoiler.reason`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implementation requirements:
This comment was marked as duplicate.
Sorry, something went wrong.