misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
10.11k stars 1.38k forks source link

Pronouns feature #8726

Open ThatOneCalculator opened 2 years ago

ThatOneCalculator commented 2 years ago

Summary

Idea:

Federated pronouns in a user's vCard, which will show a small reminder when replying to a person with set pronouns to be respectful of said pronouns. Should have a max character limit of around 20 characters to prevent abuse.

Why:

Many SNS's have the problem of no or very limited pronoun functionality, and even a small addition like this would be very helpful not only for trans/nonbinary people, but also cisgender people who want to be referred to correctly. :transgender_flag: :heart:

Mockup:

image

image

ThatOneCalculator commented 2 years ago

8727 is mostly to act as a base/proof of concept, I don't see myself fully developing it out :bow:

Johann150 commented 2 years ago
  1. I am not sure how universal this concept of gendered pronouns is, or if for example Japanese has them?
  2. If these are important to people, federating them should be ensured. But as far as I know no other fediverse software implements something like this. It might be a better idea to put pronouns in one (or more) of:
    • display name
    • profile description
    • tabular profile fields
ThatOneCalculator commented 2 years ago
  1. Gendered pronouns apparently are a thing in Japanese (although seemingly less common than English), and they're a thing in most languages too. I would agree that this is a more western-language-centric request. Please keep in mind I am not a native Japanese speaker, I would love some feedback from the Japanese Misskey developers and community ❤️

  2. It's always a good idea to have pronouns in bio/profile fields, but a specific vCard spot for pronouns has the unique possibility of reminding other Miskists to use a person's preferred pronouns when replying to them, see the second mockup screenshot.

It may not be a nessicary feature by any means, but it would be great for a lot of people, and does have people already expressing interest and use cases for it.

acid-chicken commented 2 years ago

AFAIK, Although second and third person pronouns exist in Japanese, they are used much less frequently in conversational writing on SNS than in English. More to the point, the overuse of third-person pronouns can even make the sentence look like an example from a foreign language textbook.

ThatOneCalculator commented 2 years ago

Ah, understandable. I still think this would be a great addition for western language speakers, though.

Johann150 commented 2 years ago

There are still issues with just the pronoun field itself: Continuing about ensuring federation of pronoun information, there should be a clear way in which this information stays visible when viewing an account from Pleroma or Mastodon.

I also checked but neither schema.org nor vcard seems to have a properly standardised field for pronouns, which again makes me think just using a free form text field is the best idea here.

With using the field come even more issues: How do you internationalize pronouns? Like this?

הכינויים שלי they/them.

This user uses "君" pronouns. Cet utilisateur utilise les pronoms "they/them". Diese Person verwendet die Pronomen "they/them".

The french version explicitly genders the noun and I think also the verb so that sentence becomes ironic in itself. (If it is not obious, I can not speak all of the above languages, so I'm sorry if I said something inappropriate.)

volpeon commented 2 years ago

About the second mockup: I think this feature isn't all that useful. In English and many other languages, the only gendered pronouns are those for talking about rather than to someone. So when replying, pronouns only become relevant when you talk about someone who isn't the person you're responding to and this feature won't save you from having to look up profiles to find the right pronouns to use.

Instead, I think it would be better to add a non-intrusive way to view profiles of people you're mentioning in your draft. Basically something like the profile popover that appears when you hover a rendered mention, except it works with the post editor somehow. (The profile popover should also show custom fields.) Then you can look up not just the pronouns, but many other information you might need without having to interrupt your current workflow. It would be useful for anyone regardless of their language.

ThatOneCalculator commented 2 years ago

While that could be a better implementation in a lot of ways, if I have 16 profile fields, it could easily become cluttered, especially on the mobile UI.

The mockup is just a concept, but why not use that space just to show everyone's pronouns in thread you're replying to?

Ex.

@bob uses he/him pronouns
@alice uses she/they pronouns
@alex uses zi/zir pronouns
---
@bob @alice @alex Lorem Ipsum Dolor Sit Amet
ThatOneCalculator commented 2 years ago

The french version explicitly genders the noun and I think also the verb so that sentence becomes ironic in itself

@Johann150 somewhat correct, but afaik gendered pronouns are still used when referring to someone, and some people request in their pronoun set a certain way to be referred to. From a native French speaker on my instance:

Screenshot_20220524-091101_1.png

volpeon commented 2 years ago

Your screenshot opens up another question: How would we handle pronouns for different languages? Having users put all info in one field doesn't seem good to me because in that case other users will see information that's irrelevant to them. It will also pose a challenge for the new suggestion you made because in this example, we'd end up with

@bob uses he/him pronouns
@alice uses e/em, she/her, and they/them; iel + <line wrap>
accords fem, ou elle. pronouns
@alex uses zi/zir pronouns

This is a lot of space before the user even gets to see the text field, the UI element that should be in the primary spot.

Back to my suggestion from before, how about a compromise: Have a dedicated pronoun field, and only this one will be shown in the profile popover. I also noticed that the post preview feature shows rendered mentions with the popover function, so my suggestion is basically 90% implemented already.

A more generic solution would be to allow users to add a semantic type (pronouns, website, chat ...) to their custom profile fields and other users can define in their settings which one to see in the popover. These types would also allow us to remove the arbitrary distinction between hard-coded fields and custom profile fields since the former could be replaced with semantic types of the same meaning (birthday and location). And maybe these semantic types could be used for other features, too.

ThatOneCalculator commented 2 years ago

Back to my suggestion from before, how about a compromise: Have a dedicated pronoun field, and only this one will be shown in the profile popover. I also noticed that the post preview feature shows rendered mentions with the popover function, so my suggestion is basically 90% implemented already.

I think this idea is great, and should be pretty easy to implement! 🥳

Johann150 commented 2 years ago

Misskey allows up to 16 fields which will definitely be too much for a popup to show, especially if they contain more than a few words. I think a good solution would be to:

A special concern would be touch devices, since they usually do not have a cursor hover and will thus not display the popup. But this also the current state and I guess some compromises will have to be made. On the other hand, this also means that widening the popup is less of a concern because it will not be shown on the small screens of mobile devices.

ThatOneCalculator commented 2 years ago

Why not @volpeon 's compromise idea? I think that'd work better than showing a limited number of profile fields, especially since a lot of people (esp on remote Mastodon instances) mostly use them for websites, not for pronouns.

Johann150 commented 2 years ago

You showed an example yourself of why a single field will not be enough, so I thought multiple fields would be better. Then you just put the pronouns in the first field(s) and they will show up in the popup. The exact number of fields was just a random suggestion.

The text length problem is why I suggested limiting the text length, which should be done quite rigorously. Should probably not be more than one line, perhaps 20 to 30em.

ThatOneCalculator commented 2 years ago

The thing is in this compromise proposal, pronouns will still be in a specific part of the vCard so that hovering over someone will be guaranteed to show a person's pronouns.

ThatOneCalculator commented 2 years ago

Honestly I'm gonna try and think of a possibly better implementation that would also be mobile friendly, my brain is currently melting 🫠

volpeon commented 2 years ago

re multiple fields: I think my generic solution would provide the best flexibility. If someone needs multiple profile fields for their pronouns in different languages, they could set the type to pronouns to both of them and they'd be both shown in the popover.

ThatOneCalculator commented 2 years ago

I'm having a bit of trouble visualizing it, would you mind making a simple mockup/sketch?

volpeon commented 2 years ago

It would work like this: https://mk.vulpes.one/files/731291e5-726e-46d5-b1fb-5e22bef7dcce

The first select box is the field type, the second field is the label and the third one the value. For type language it would make sense to render a select field like Misskey currently does instead. Not shown in the concept is the ability to remove/add fields. Just imagine there's an [x] button next to each field that removes it and at the end of the list is an [Add field] button.

ThatOneCalculator commented 2 years ago

Oh I like that idea!! Might also be easier to get other Fediverse services to implement it too :)

Johann150 commented 2 years ago

First of all I do not like the feature creep of this issue getting into other properties. This will not work because they are handled entirely separately in the backend and in federation. It might have been a good idea at an earlier point in time, but the decision has been made differently now.

As for the pronouns field I think for federation we might be able to use a PropertyValue with a propertyID field which references https://www.wikidata.org/wiki/Property:P6553. I would rather have used a definition from schema.org or vcard since we are already using those, but both of them do not seem to have a field or data type for preferred pronouns. Strictly speaking even the wikidata suggestion is not quite right because their format only allows for one pronoun (i.e. "they/them" is strictly speaking disallowed), but I think it is still better than coming up with a completely new field of our own.

Using a PropertyValue will degrade nicely, as the other properties are already federated in the same way. On incoming activitystreams the special type of the property can again be detected by reading propertyID.

ThatOneCalculator commented 2 years ago

First of all I do not like the feature creep of this issue getting into other properties. This will not work because they are handled entirely separately in the backend and in federation. It might have been a good idea at an earlier point in time, but the decision has been made differently now.

New features seem to constantly be added to Misskey, so... I suppose this is more of a non-urgent, nice-to-have idea for the future.

I would rather have used a definition from schema.org or vcard

There's always the first idea I proposed :shrug:

As for the pronouns field I think for federation we might be able to use a PropertyValue with a propertyID field which references wikidata.org/wiki/Property:P6553. I would rather have used a definition from schema.org or vcard since we are already using those, but both of them do not seem to have a field or data type for preferred pronouns. Strictly speaking even the wikidata suggestion is not quite right because their format only allows for one pronoun (i.e. "they/them" is strictly speaking disallowed), but I think it is still better than coming up with a completely new field of our own.

Using a PropertyValue will degrade nicely, as the other properties are already federated in the same way. On incoming activitystreams the special type of the property can again be detected by reading propertyID.

I'm going to be honest, I don't know enough about this to have a good solution.

ThatOneCalculator commented 2 years ago

Actually, IIRC PixelFed does pronouns. I wonder how they handle it... :thinking:

Johann150 commented 2 years ago

There's always the first idea I proposed 🤷

👀 I don't see it.

Actually, IIRC PixelFed does pronouns. I wonder how they handle it... 🤔

It seems, not at all.

example I used https://pixelfed.social/dansup as an example, which shows "he/him" in the web UI. When fetching as ActivityStreams representation I could not find any information about pronouns. ```shellsession $ curl -sH 'accept: application/activity+json' https://pixelfed.social/dansup | python3 -m json.tool { "@context": [ "https://w3id.org/security/v1", "https://www.w3.org/ns/activitystreams", { "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" } ], "id": "https://pixelfed.social/users/dansup", "type": "Person", "following": "https://pixelfed.social/users/dansup/following", "followers": "https://pixelfed.social/users/dansup/followers", "inbox": "https://pixelfed.social/users/dansup/inbox", "outbox": "https://pixelfed.social/users/dansup/outbox", "preferredUsername": "dansup", "name": "dansup", "summary": "Hi, I'm the developer behind @Pixelfed! Also @dansup@mastodon.social #pixelfed #design #webdev", "url": "https://pixelfed.social/dansup", "manuallyApprovesFollowers": false, "publicKey": { "id": "https://pixelfed.social/users/dansup#main-key", "owner": "https://pixelfed.social/users/dansup", "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn9TEqiXOvCKBS7dK8+ZV\ncO/UmPRejL77hmO74sHIyteJVHUhnhzBz3PAWaQWdv9A4ViL8ghhSV50NzO6HIrk\nzlclmK0GeGrxRFDBLGHpa4KFErqcQgIG3uRjJ5UDhUijEsbusmnVhpLWUFEO7Atw\nbhd/XVciruF6ea3ryyco6ZES7IHKdUBwM3IKpZqIb/h2ObXcVVC1I2oggHRxR+eP\nqst0qU31MryUkBqX7DVcNV/yXdRUuEc+ZiK/rNkr3RCzE3J7PePH5RNpJDIfj4Jn\n+lW7ErT5Susn1+VHP7NHpAK8pe8atUpXEtogAbgt7KYi0Kq+XCxLv7YZuOqSaX2p\nZwIDAQAB\n-----END PUBLIC KEY-----\n" }, "icon": { "type": "Image", "mediaType": "image/jpeg", "url": "https://pixelfed.social/storage/avatars/000/000/000/000/000/000/2/mLZr2R47XEwbmasH2M3P_avatar.jpg?v=57" }, "endpoints": { "sharedInbox": "https://pixelfed.social/f/inbox" } } ```
ThatOneCalculator commented 2 years ago

:eyes: I don't see it.

The first idea was putting em in the vCard and showing it the stinky way, see the mockup + #8727

Johann150 commented 2 years ago

As I said, vcard does not really support it that way, as you discovered. And pronouns are definitely not a nickname:

NICKNAME The nickname is the descriptive name given instead of or in addition to the one belonging to the object the vCard represents.

gender seems more appropriate, but the RFC says the second part represents the "gender identity" so might not strictly be pronouns.

ThatOneCalculator commented 2 years ago

While it's not a nickname, gender requires kinda weird formatting like M;hehim or ;theythem There's a proposal to add pronouns to the vcard standard, but that's about it sadly :pensive:

https://mailarchive.ietf.org/arch/msg/vcarddav/FCjVznQHsmtPPLmv2z69OcxL8u0/

ThatOneCalculator commented 2 years ago

@Johann150 Maybe using

p-x-pronoun-* property classes in an h-card

is a good idea?

https://microformats.org/wiki/pronouns-examples

On that note, perhaps switching from the v-card spec to the h-card spec might be an idea? https://microformats.org/wiki/h-card

ThatOneCalculator commented 2 years ago

Ignore this comment, sorry

Johann150 commented 2 years ago

Why do you suddenly change everything again, I thought we agreed that showing these fields in the profile popoup is sufficient.

I can not imagine how this would be mobile friendly on a portrait view screen, I can not imagine any way of showing pronouns there at all, because when I open the posting form, the screen is already filled with the orignal post, the textarea and my keyboard. There is no more space to put any other information without making it even more crowded.

ThatOneCalculator commented 2 years ago

I'm not trying to change everything again, it was just another idea, sorry :/