Globally Inclusive Fediverse Handles (i.e. beyond simple Latin Script letters)
Convener: Jim DeLaHunt (@jdlh@mstdn.ca)
Participants who chose to record their names here:
Knowledge
Bookmarks
- FediForum 2025-10 session Globally-inclusive Fediverse Handles (i.e. non-ASCII)
- I’d like to run an instance with non-ASCII usernames: https://github.com/mastodon/mastodon/issues/8417
- Unicode Tech Reports
- Label Generation Rules
- …
Forums and structures
- COSCUP (Taiwan) https://floss.social/@COSCUP https://blog.coscup.org/2026/03/coscup-x-ubucon-asia-2026-coscup-x.html
- Tracking support for non-ascii characters https://github.com/swicg/activitypub-webfinger/issues/29
- …
Existing globally inclusive handles, services
- @你好@i18n.viii.fi by @Edent@mastodon.social
- @north@ꩰ.com@hachyderm.io
- Added Unicode username support to Flohmarkt: https://codeberg.org/flohmarkt/flohmarkt/pulls/921
Next steps
Form a Social WG Community Group Task Force:
- https://github.com/swicg/general
- https://www.w3.org/community/socialcg/ — anyone can join the CG, which is probably where this work would initially live
- https://www.w3.org/groups/wg/social/ — W3C members or invited experts, chairs by Darius Kazemi
Notes
Introductions
Comment: homoglyph attacks are a risk
TranslateScience: Multilingual science
Identifier recommendations
Figure out how webfinger actually works for globally-inclusive handles. The binding spec to ActivityPub.
ATProto allows DNS or HTTPS resolution
DNS is a TXT record as _atproto.
HTTPS is a request to
/.well-known/atproto-did These are both bidirectionally verified, where the DID document MUST have the handle in the alsoKnownAs section.
For ActivityPub, we are missing a foundation of handles. There is no bidirectional link.
Because handles only came to ActivityPub via Webfinger being used by Mastodon, the only thing we have in ActivityPub are Actor IDs. There is a preferredUsername field on Actor, but it’s not intended for Handles
For proper verification we need a value in Actor objects that says “this is my handle”
For a given language or script, there’s a specification that governs what characters are allowed in domain names.
Exists in chinese, korean, japanese, arabic etc.
To prevent homoglyph attacks, we can detect mixed scripts in handles and domains to flag that as a potential attack.
FediMod FIRES, distribution of moderation advisories & recommendations
Specifically wanted to highlight homoglyph attacks in datasets.
Internationalisation Classes for Unicode (ICU) library
\pcode in regular expressions, for character ranges: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#regular_expression_and_unicode_charactersDomain name registrars probably have written code to apply label generation rules to candidate domain name labels. Get a link to their work.
Mastodon software is “micro-blogging server”.
Recommendation to go to COSCOP and do this session.
Mastodon.jp does not run Mastodon software
dropped ActivityPub because it did not meet their needs. There is a Sovereign Tech Agency fund for people interested in getting invovled in Standards work. Who is willing to do the standards work?
Social Web Commnity Working Group in W3C as institutional home.
How do competing social media support globally inclusive handles?
Meta: generally don’t use user names
Bluesky: should already support internationalised domain name. Here is what bluesky is currently doing: https://bsky.app/profile/xn--gckvb8fzb.com
Twitter: never supported internationalisation, and Fediverse continued that logic and reused the same limited libraries (specifically Mastodon did).
Is this an all-or-nothing thing, or can there be incremental progress?
Incremental areas of improvement:
User registration emails
Localisation of user interfaces
Hashtags
For handles, it is either all or nothing, with the caveat that other software might display your handle as punycode encoded
Open a bug report with Mastodon software about supporting globally inclusive handles
Older Mastodon servers had an “original sin” which used ASCII-only user name as “actor identifier”, which is hard to change
Newer versions of Mastodon software uses integer instead.