-
Couldn't load subscription status.
- Fork 413
MSC4247: User Pronouns #4247
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
base: main
Are you sure you want to change the base?
MSC4247: User Pronouns #4247
Changes from 12 commits
c8f3ece
f17962d
f3f6880
d78c996
c18ebc7
939b203
dc4e203
b4176bf
0fd6715
f1e9366
f6bf41f
7db04a9
dd04dd6
963b18d
b063f6e
fb950bd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
|
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. @ara4n pointed out JSContact (RFC9553) in #4175 (comment). Looks like they have a pronoun field and ended up with basically the same design of declaring a grammatical gender and summary: https://www.rfc-editor.org/rfc/rfc9553.html#name-speaktoas Main difference is that they only allow declaring 1 grammatical gender, which seems quite dumb. It's also a lot more complicated overall (translations are in an entirely separate top-level object and I have no idea what those k19 and k32 keys are) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| # 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 | ||
88572 marked this conversation as resolved.
Show resolved
Hide resolved
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. With regards to this being an array, note that JContact is a dictionary with context and preference order which means it's possible to designate different pronouns for different situations, and also to have pronouns of equal preference. However, given that this also has to be easy for a user to input and read, I think I'm leaning towards the solution of an array and assuming that if some are context-dependent then it will be apparent to the reader which to use when. In any case, a machine won't know this context so it's useful to express a default for this. I do think it's worth adding as an alternative though: this proposal lacks an alternatives section and it could probably use one. |
||
| [profile API endpoints](https://spec.matrix.org/unstable/client-server-api/#profiles). | ||
| Clients should parse this and use these instead of they/them where possible. | ||
|
|
||
| ### Example | ||
|
|
||
| ```json | ||
| { | ||
| "avatar_url": "…", "displayname": "…", | ||
| "m.pronouns": [ | ||
| { | ||
| "subject": "it", | ||
88572 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| "object": "it", | ||
| "possessive_determiner": "its", | ||
| "possessive_pronoun": "its", | ||
| "reflexive": "itself", | ||
tulir marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| "language": "en", | ||
|
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 would probably vote for removing 'language' here, at least for a first cut of this feature. It's not 100% clear whether it's describing just the summary field or the grammatical_gender field too, and what the latter would mean. I feel like it's probably a vestige from when this MSC had the full set of pronouns individually. If it is included, I think it would need a fair bit of explanation on how it would actually be applied. |
||
| "summary": "it/its" | ||
| }, | ||
| { | ||
| "subject": "she", | ||
| "object": "her", | ||
| "possessive_determiner": "her", | ||
| "possessive_pronoun": "hers", | ||
| "reflexive": "herself", | ||
| "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 language code, and | ||
tulir marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| clients should render the `summary` for the pronouns. Clients may offer | ||
88572 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| pre-defined sets of common pronouns like she/her, they/them, he/him, it/its, | ||
| etc. | ||
|
|
||
| ## 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. | ||
|
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. Potential for abusive content in the free-text field (obviously no more so than display names though, but I think it's worth noting). |
||
|
|
||
| ## 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?
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.
With gomuks/gomuks#574, Gomuks supports rendering pronouns (setting them is not implemented in the UI yet, but is supported on the backend).