-
Notifications
You must be signed in to change notification settings - Fork 385
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
MSC4247: User Pronouns #4247
base: main
Are you sure you want to change the base?
MSC4247: User Pronouns #4247
Changes from all commits
c8f3ece
f17962d
f3f6880
d78c996
c18ebc7
939b203
dc4e203
b4176bf
0fd6715
f1e9366
f6bf41f
7db04a9
dd04dd6
963b18d
b063f6e
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,54 @@ | ||||||
# MSC4247: User Pronouns | ||||||
|
||||||
Many users of Matrix put pronouns in display names. However, that causes screen | ||||||
clutter. This proposal defines a standardized pronouns field on top of | ||||||
[MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133). | ||||||
|
||||||
## Proposal | ||||||
|
||||||
Profiles may have an optional `m.pronouns` field as an | ||||||
array. These fields can be fetched through the | ||||||
everypizza1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
[profile API endpoints](https://spec.matrix.org/unstable/client-server-api/#profiles). | ||||||
Clients should use these instead of they/them where possible. All fields | ||||||
within `m.pronouns` are optional, exluding `"language"` and `"summary"`. | ||||||
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.
Suggested change
(since there is only one more field, it might be better to reverse the wording of this sentence and say that all are required except grammatical gender) |
||||||
|
||||||
### Example | ||||||
|
||||||
```json | ||||||
{ | ||||||
"avatar_url": "…", "displayname": "…", | ||||||
"m.pronouns": [ | ||||||
{ | ||||||
"grammatical_gender": "inanimate", | ||||||
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. What grammatical genders are available? I think they need to be enumerated. I don't know what grammatical gender "they/them" would be, for example. I also think they need to ne prefixed ( |
||||||
"language": "en", | ||||||
"summary": "it/its" | ||||||
}, | ||||||
{ | ||||||
"grammatical_gender": "feminine" | ||||||
"language": "en", | ||||||
"summary": "she/her" | ||||||
} | ||||||
] | ||||||
} | ||||||
``` | ||||||
The example uses it/its pronouns followed by she/her pronouns, both in English. | ||||||
The array is ordered by preference, `language` should be a | ||||||
[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language code, and | ||||||
clients should render the `summary` for the pronouns. Clients SHOULD use the | ||||||
`grammatical_gender` if possible in state events. For example, "Alice changed | ||||||
her avatar" for `feminine` or "Alex changed its avatar" for `inanimate`. | ||||||
|
||||||
## Potential issues | ||||||
|
||||||
Some users may not want to publish pronouns to others, although that is out of | ||||||
scope for this MSC. Some users may also complain about "woke", although | ||||||
pronouns are a basic part of langauge. | ||||||
|
||||||
## Security issues | ||||||
|
||||||
None. | ||||||
|
||||||
## Unstable prefix | ||||||
|
||||||
Clients and servers wishing to implement this early may use | ||||||
`io.fsky.nyx.pronouns`. |
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:
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.
Conduwuit already supports this by supporting arbitrary fields in #4133 so I'd assume this MSC only requires a client implementation that can read/write the field?