- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 25
 
Pronouns #7
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: master
Are you sure you want to change the base?
Pronouns #7
Changes from all commits
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,87 @@ | ||
| - Feature Name: Pronouns | ||
| - Start Date: (16/06/2023) | ||
| - RFC PR: None | ||
| - Tracking Issue: None | ||
| - Status: draft | ||
| 
     | 
||
| # Summary | ||
| 
     | 
||
| This change creates a pronoun field for Revolt.chat, this field will be attached to a users public profile information. | ||
| 
     | 
||
| 
     | 
||
| # Motivation | ||
| 
     | 
||
| Pronouns have been requested by the community and are high up on the RFC list. | ||
| 
     | 
||
| # Guide-level explanation | ||
| 
     | 
||
| Currently users display their pronouns in their Profile content (bio) but this provides a cleaner solution to the problem. The aim of this change is to ensure that pronouns for a user can be easily seen and displayed inline with a users displayname / username. | ||
| 
     | 
||
| # Reference-level explanation | ||
| 
     | 
||
| The field `pronouns` will be added to the main `User` object, as well as the `PartialUser` and `FieldsUser` objects. (In practise this means that the pronouns field will be fetched for the `fetch_user` API route, and pronouns can be edited or removed from the `edit_user` API route. | ||
| 
     | 
||
| The pronoun field (on a `User` will be an optional array of strings. | ||
| 
     | 
||
| ### Data representation in Rustlang | ||
| ```rust | ||
| { | ||
| pronouns: Option<Vec<String>> | ||
| } | ||
| ``` | ||
| 
     | 
||
| ### Pronouns stored in JSON | ||
| ```json | ||
| { | ||
| "pronouns": ["she", "her"] | ||
| } | ||
| ``` | ||
| For no pronouns the object will not be serialised | ||
| ```json | ||
| 
     | 
||
| ``` | ||
| 
     | 
||
| Additionally, there will be database changes for pronouns to be fully implemented. The `Collection` shall contain an entry of every supported language (represented by an abbreviation) with an array of every valid pronoun for the language. This collection must also be accessible as an API route. | ||
| 
     | 
||
| ```bson | ||
| { | ||
| "language": "<string>", | ||
| "pronouns": ["<string>", "<string>", ...] | ||
| } | ||
| ``` | ||
| 
     | 
||
| 
     | 
||
| # Drawbacks | ||
| 
     | 
||
| As pointed out by users this system is prone to abuse, not only from users assigning themselves fake pronouns but for automated attacks. (e.g. bots scanning users accounts for neopronouns and harassing based on that data). And it has even been suggested that bots should not be allowed to access this data. However there is no clear answer on that yet. | ||
| 
     | 
||
| # Rationale and alternatives | ||
| 
     | 
||
| For the new web clients pronouns could be displayed as a field of the their profile similar to the new display for badges on Revolt, another option is to show a users pronouns after their displayname/username. | ||
| 
     | 
||
| The former offers a more 'minimal' display for users messages while the latter is more effective as a tool, for ensuring that a user's pronouns are easily visible and more importantly; used and respected. | ||
| 
     | 
||
| 
     | 
||
| # Prior art | ||
| 
     | 
||
| Pronoun systems have been created tested on many different platforms before Revolt.chat, here is a sample of those | ||
| 
         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. Many other systems allow for length-limited free form text, such as github.com, codeberg.org, discord, Zoom, Slack, Mattermost, Mastodon, ... The two examples currently listed are both corporate products of the same umbrella organisation. Is following Meta's corporate model Revolt's goal? I suspect not.  | 
||
| Instagram has a very high regarded pronoun system as it validates pronouns before applying them for a user. | ||
| Facebook's UI changes if a user adds pronouns to their profile, (changing from gender neutral to gender specific language), and this information is only made public if a user chooses for it to be so. | ||
| 
     | 
||
| 
     | 
||
| # Unresolved questions | ||
| 
     | 
||
| The specifics for how to best represent and store data for pronouns in a way that is both simplistic and effective for MongoDB has not yet been confirmed. | ||
| 
     | 
||
| Should access to pronouns be restricted to non bot accounts? | ||
| Should every user be able to see every other users pronouns or should this feature be restricted to those who are friended? | ||
| 
     | 
||
| # Security concerns | ||
| 
     | 
||
| N/A | ||
| 
     | 
||
| # Future ideas | ||
| 
     | 
||
| For Revolt clients in the future, there may be options for how pronouns are displayed on each user and perhaps multiple choices for a more customisable UI. | ||
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.
For what should this be exactly? Set a list of pronouns to choose from based on the language you use?
Isn't that a bit limiting? Would apreciate some clarification here.
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.
The purpose for the collection is to stop trolls from using the feature to enter joke pronouns, as for language I've decided that it'll start with English only.
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.
That determination should be up to a community to manage, not for the software itself to set restrictions.
Uh oh!
There was an error while loading. Please reload this page.
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.
In the end is Revolt not just a software, but also a Service-provider, as they themself provide a platform for you to join.
As such do they also have a responsibility to keep the platform safe and welcoming for people. And allowing this field to be anything a user wants only calls for abuse by other people, which can impact others negatively.
Communities should be able to manage things, yes. But I don't think that something like Pronouns should be left to them to handle.
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.
This could also be applied to a person's username, bio, all the comments they make, all the photos and videos they post. Server moderators are responsible for their communities today.
It can also be said in reverse, if someone wants their pronoun added and Revolt as a service as a whole does not approve it, that person will not feel "welcomed" to the Revolt service as a whole. Whereas if each server has the capability to either maintain an exhaustive list or turn off the restrictions, that person can feel at home in those communities.
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.
I really have to respectfully disagree. I believe it can easily be a form of artistic expression. I think this discussion is a little too focused on damage limiting the negative cases and isn't considering the positive cases.
Revolt includes moderation tools. Let the moderation tools also include reports for inappropriate pronouns for communities who want that.
Many people may not want to include their pronouns out of privacy concerns, or simply may not want the attention putting in their real pronouns may get. Being able to use the pronoun field to leave a cute message is fun!
Forcing users to select from a premade list creates ongoing technical debt for developers when communities who speak languages not thought of by the developers wish to converse in their language over Revolt and want to add their pronouns. There are over 7000 natural languages, and over 150 have a million speakers today. Only a small portion of those who wish to include their pronouns on their profile are going to open a github issue to expand the pronoun list.
Additionally, each language may have its own method of expressing gender pronouns that may not even be distinct words but instead are clitics. Is the German Genderstern going to be included, or just er/sie/es? This problem has significant depth.
Selecting from a list also limits conlanging communities, composed of those who construct artificial languages for fun. Some of those constructed languages are spoken as native languages today, the most popular of which being Esperanto.
Do not force the development team to become the arbiters of expression. Leave it up to communities to decide what is tasteful in their own community.
Less code for more expression.