mattermost / mattermost

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
https://mattermost.com
Other
30.63k stars 7.34k forks source link

gender neutral emoji search #20766

Open hairmare opened 2 years ago

hairmare commented 2 years ago

Summary

Hi it's me again. Gender neutral emoji guy :pleading_face:

We have support for the full range of emojis from #17328 and :health_worker: was added as :doctor: in #20318. This was an override to the rule being only to allow standard names going forward.

As much as this is about exclusivity, it is also about i18n. Most users that don't use an EN locale will still search for emojis in English. For instance, my fellow German speaking colleagues would never consider searching for a person riding a bike with the c char.

Steps to reproduce

I recently stumbled over searching for bik because i wanted :bicyclist:

Expected behavior

When searching for emojis, the interface should always include the non gendered variant if the search is narrowed down to less than the "..." cut--off and a there are matching man/woman pairs in the results.

For the example given above, this would add :mountain_bicyclist: :bicyclist: to the results. This issue wants to find a more complete solution to the problem

Observed behavior (that appears unintentional)

bik is an expected search term for :bike: people and it results in the similar results to what was found with doctor in #20318:

image

no gender neutral equivalents :disappointed: we have to use bic as a search term

Possible fixes

Apart from getting additional exemptions and implementing :biking: and :mountain_biking: i'd like to propose doing this the "data-science" way:

You can have a look at #20578 for how to implement this (thanks to @Haliax for :doctor: btw). Kennet's pull requst also links a related webapp PR that shows how doing this needs two PRs.

Going forward, I'd bet on the Unicode consortium taking care of this as part of their work. Adding a CI check that ensures emojis.json is considerable might be overkill, but could be an interesting side-quest towards solving this issue. It's not up to me to decide if that should be a requirement of this issue tho.

I'm not sure if I'll find any time to work on this soon :sweat_smile: That's why i tried to write it up in good-first-issue style, feel free to tag it as such if you agree :smiley:

amyblais commented 2 years ago

Opened: https://mattermost.atlassian.net/browse/MM-46215.

hmhealey commented 2 years ago

Thanks for the report, @hairmane!

Similar to the :doctor: emoji, I think this is an issue with us mixing GitHub's shortnames for older emojis with the ones from emoji-datasource for newer ones, so that we end up with odd cases like :woman_biking: vs :bicyclist: or the similar case with :man_doctor: vs :healthcare_worker:. Detecting all of those cases automatically would probably be tricky, and I'd be a bit worried about complicating our emoji data by adding more and more "custom" aliases that match the older names.

What if instead of tackling this by adding more aliases, we instead looked at improving the emoji picker by making it a bit smarter and easier to use? The Unicode consortium has a list of keywords that match each emoji (link), and if we were to use those in the emoji picker, we could handle a lot more cases like this since "bicycle", "cycling", and "bike" would all return all 3 "x biking" emojis. They'd still get added to the post as whatever they are right now, but that wouldn't matter too much as long as they showed up in search results correctly.

Thoughts?

Also, CCing @esethna since making the emoji picker easier to use seems like something you'd be interested in discussing. There might also be some UX things we'd need to confirm like how to order results that only match by keyword and if we should make the keywords translatable since that might be a bit tricky given how emoji data is currently set up.

correctmeifimwrong33 commented 6 months ago

I ran into this as well and initially assumed that Mattermost had dropped the gender-neutral variants because the autocomplete only showed the gendered options as completions of what I had typed. Happy to see this is already being looked into!

The Unicode consortium has a list of keywords that match each emoji (link), and if we were to use those in the emoji picker, we could handle a lot more cases like this

That page shows the same "facepalming" word for the gendered and neutral variants, not "face_palm" as Mattermost requires. Could just take that page as a drop-in replacement, without yet doing the work of adding support for aliases, and that already improves the situation