Proposal to clarify spoilers

Original MSC: https://github.com/matrix-org/matrix-doc/pull/2010

*Per the proposal process, MSC2010 has been modified to match this MSC.*
pull/977/head
Travis Ralston 5 years ago
parent c2d5516517
commit 6eecee7d3c

@ -0,0 +1,20 @@
# MSC0000: Clarifications on spoilers
Spoiler messages are described in [MSC2010](https://github.com/matrix-org/matrix-doc/pull/2010)
though the MSC is unclear if the fallback is required to be sent by clients.
## Proposal
The fallback for spoiler messages is optional, though recommended to be sent by clients. Clients
should make reasonable efforts to represent the spoiler in the `body` field of a message.
The recommended fallback format is unchanged.
Additionally, this proposal opens up spoilers to any HTML-supporting message types. Currently
this includes `m.text` (already included by MSC2010), `m.notice`, and `m.emote`.
## Potential issues
Clients could inadvertadly spoil parts of a message by not representing the spoiler correctly
in the `body` of the message. The author believes this would quickly show up as a bug report
on the client due to the nature of spoilers.

@ -14,7 +14,7 @@ To render the spoiler the content is hidden and then revealed once interacted so
## Proposal ## Proposal
This proposal is about adding a new attribute to the `formatted_body` of messages with type This proposal is about adding a new attribute to the `formatted_body` of messages with type
`m.room.message` and msgtype `m.text`. `m.room.message` and message types which support the `org.matrix.custom.html` format.
It adds a new attribute, `data-mx-spoiler`, to the `<span>` tag. If the attribute is present the It adds a new attribute, `data-mx-spoiler`, to the `<span>` tag. If the attribute is present the
contents of the span tag should be rendered as a spoiler. Optionally, you can specify a reason for contents of the span tag should be rendered as a spoiler. Optionally, you can specify a reason for
@ -22,6 +22,9 @@ the spoiler by setting the attribute string. It could be rendered, for example,
![Spoiler rendering idea](images/2010-spoiler-example.gif) ![Spoiler rendering idea](images/2010-spoiler-example.gif)
The plaintext fallback supported by the `body` is optional. A recommendation for clients is included
below.
To preserve the semantics of a spoiler in the plaintext fallback it is recommended to upload the contents of the spoiler To preserve the semantics of a spoiler in the plaintext fallback it is recommended to upload the contents of the spoiler
as a text file and then link this: `[Spoiler](mxc://someserver/somefile)` and as a text file and then link this: `[Spoiler](mxc://someserver/somefile)` and
`[Spoiler for reason](mxc://someserver/somefile)` respectively. `[Spoiler for reason](mxc://someserver/somefile)` respectively.

Loading…
Cancel
Save