As someone who has developed several #ActivityPub software implementations ([Fedify], [Hollo], [BotKit], and [Hackers' Pub]), I believe one of the most frustrating features to implement in the #fediverse is #custom_emoji.
-
@hongminhee sounds like there needs to be a better FEP written, one which encourages alt text for custom emojis?
schrieb am 19. Apr. 2025, 15:31 zuletzt editiert von@thisismissem@hachyderm.io Yeah, if it's standardized al text should be considered…
-
@thisismissem@hachyderm.io Yeah, if it's standardized al text should be considered…
schrieb am 19. Apr. 2025, 15:37 zuletzt editiert von@hongminhee I know there's a FEP for emoji reactions, but I don't think there's ever been one for custom emojis? https://codeberg.org/fediverse/fep/src/branch/main/fep/c0e0/fep-c0e0.md
-
As someone who has developed several #ActivityPub software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the #fediverse is #custom_emoji.
The challenges are numerous:
First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.
Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.
Perhaps most concerning is the poor #accessibility. Most implementations simply use the emoji code (like
:party_blob:
) as thealt
text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.
#fedidev
schrieb am 19. Apr. 2025, 15:53 zuletzt editiert von@hongminhee I would do the same thing I do for images right now: I add a summary field on the ActivityPub object that designates the image/svg, which then gets translated into an alt text when rendered into HTML. See this as an example: https://marius.federated.id/outbox/1743586392386 (this is an ActivityPub Create for that Image that you see). If you access the object of the Create you get just the plain binary image, but so encapsulated it renders with the alt text.
-
@liaizon@social.wake.st I appreciate the enthusiasm, but I personally don't have much motivation to standardize custom emoji. While I understand many people enjoy this feature, I'm not particularly fond of custom emoji functionality in general. My limited interest in the feature itself, combined with the significant accessibility issues it creates, makes it difficult for me to get excited about investing time in standardization efforts. Though I respect that others might feel differently!
schrieb am 19. Apr. 2025, 15:56 zuletzt editiert von@hongminhee @liaizon I've never really got to the point to add custom emojis for my projects, but I think they as a concept work really well on top of ActivityPub in the form of "Like" activities which have a URL (or even maybe a binary Content directly) to the actual emoji image, but also support alternate text as I described in my sibling message.
-
As someone who has developed several #ActivityPub software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the #fediverse is #custom_emoji.
The challenges are numerous:
First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.
Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.
Perhaps most concerning is the poor #accessibility. Most implementations simply use the emoji code (like
:party_blob:
) as thealt
text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.
#fedidev
schrieb am 19. Apr. 2025, 21:12 zuletzt editiert von@hongminhee I plan to write a FEP documenting existing implementations (it is needed to finalize my emoji reactions FEP ).
>Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users
Do you know implementations that provide alt text for custom emojis?
-
@hongminhee I know there's a FEP for emoji reactions, but I don't think there's ever been one for custom emojis? https://codeberg.org/fediverse/fep/src/branch/main/fep/c0e0/fep-c0e0.md
schrieb am 20. Apr. 2025, 01:35 zuletzt editiert von@thisismissem@hachyderm.io You're right, I don't believe there's a specific FEP for custom emojis yet. If one were to be created, accessibility through proper
alt
text would definitely need to be a core requirement. The current state where emoji codes like:blob_wave:
become the alt text creates significant barriers for screen reader users—especially for non-English speakers, who face an additional language barrier when trying to understand these codes. A proper standard should address how to provide meaningful descriptions that actually convey what the emoji represents in multiple languages. -
@hongminhee I plan to write a FEP documenting existing implementations (it is needed to finalize my emoji reactions FEP).
>Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users
Do you know implementations that provide alt text for custom emojis?
schrieb am 20. Apr. 2025, 02:40 zuletzt editiert von@silverpill@mitra.social I personally didn't find integrating custom emoji to be difficult at all.
However NodeBB did already have custom emoji support (so it was fairly straightforward to add the outbound federation support), and as for inbound, the short code is defined in the payload and a simple regex replace handles it ok.
Sure, some emoji might look weird if they have different aspect ratios, but that's something outside the scope of what I'd want. All remote emoji are reduced down to a small square (or technically I think it's maybe max width and height of 1rem or similar), inline with the text and that honestly works with like 99% of the emoji I see.
-
@silverpill@mitra.social I personally didn't find integrating custom emoji to be difficult at all.
However NodeBB did already have custom emoji support (so it was fairly straightforward to add the outbound federation support), and as for inbound, the short code is defined in the payload and a simple regex replace handles it ok.
Sure, some emoji might look weird if they have different aspect ratios, but that's something outside the scope of what I'd want. All remote emoji are reduced down to a small square (or technically I think it's maybe max width and height of 1rem or similar), inline with the text and that honestly works with like 99% of the emoji I see.
schrieb am 20. Apr. 2025, 02:40 zuletzt editiert vonThat said an FEP would be nice so I'd be able to verify that my implementation checks all the boxes.
-
schrieb am 20. Apr. 2025, 08:46 zuletzt editiert von
Another annoying thing about the current custom emoji spec in the fediverse: the type is just called
Emoji
instead ofCustomEmoji
. Such a small detail, but it creates unnecessary ambiguity between Unicode emojis and custom ones. I ran into this while implementing BotKit and had type name collisions withEmoji
—had to use awkward namespacing to work around it. These little inconsistencies make implementation more tedious than it needs to be. -
schrieb am 20. Apr. 2025, 17:21 zuletzt editiert von
Started writing it
Listed requirements for the
Emoji
object.
I should probably describe the microsynax there as well, and how custom emojis are rendered. -
Another annoying thing about the current custom emoji spec in the fediverse: the type is just called
Emoji
instead ofCustomEmoji
. Such a small detail, but it creates unnecessary ambiguity between Unicode emojis and custom ones. I ran into this while implementing BotKit and had type name collisions withEmoji
—had to use awkward namespacing to work around it. These little inconsistencies make implementation more tedious than it needs to be.schrieb am 20. Apr. 2025, 17:30 zuletzt editiert von@hongminhee Why there are collisions? Do you generate
Emoji
objects for unicode emojis too? -
Started writing it
Listed requirements for the
Emoji
object.
I should probably describe the microsynax there as well, and how custom emojis are rendered.schrieb am 21. Apr. 2025, 17:20 zuletzt editiert von@silverpill @julian @hongminhee you have listed "Image is a square" but is definitely not true for Misskey. And Mastodon renders Misskeys long emojos just fine.
Actually mastodon does fine with long emojos now too -
@silverpill @julian @hongminhee you have listed "Image is a square" but is definitely not true for Misskey. And Mastodon renders Misskeys long emojos just fine.
Actually mastodon does fine with long emojos now tooschrieb am 21. Apr. 2025, 17:42 zuletzt editiert von@liaizon@social.wake.st oh fun, NodeBB handles the long emoji fine as well.
I can't wait for this to be abused
-
@silverpill @julian @hongminhee you have listed "Image is a square" but is definitely not true for Misskey. And Mastodon renders Misskeys long emojos just fine.
Actually mastodon does fine with long emojos now tooschrieb am 21. Apr. 2025, 21:08 zuletzt editiert vonRequirements in that section are meant for those who want maximum compatibility. For example, JPEGs and images larger than 256 KB are supported by Pleroma and others, but Mastodon doesn't allow them.
Non-square emojis are a bit more complicated. They are not rejected by most servers, but might not be displayed properly by clients.
I just visited your instance and made a screenshot of how emoji is rendered by web UI (attached). The emoji is present, but I can't tell what is depicted there. Some clients enlarge custom emojis on hover, but not Mastodon, so I have to open the image in a new browser tab, or zoom in the page. This is no ideal, hence the recommendation in the FEP.
-
@thisismissem@hachyderm.io You're right, I don't believe there's a specific FEP for custom emojis yet. If one were to be created, accessibility through proper
alt
text would definitely need to be a core requirement. The current state where emoji codes like:blob_wave:
become the alt text creates significant barriers for screen reader users—especially for non-English speakers, who face an additional language barrier when trying to understand these codes. A proper standard should address how to provide meaningful descriptions that actually convey what the emoji represents in multiple languages.schrieb am 21. Apr. 2025, 21:27 zuletzt editiert vonI think we can use
summary
property onEmoji
object. It's one of those properties for which the spec allows multi-language mappings: -
schrieb am 21. Apr. 2025, 22:10 zuletzt editiert von
@hongminhee
Fedibird seems to have a feature that lets you see details about emojis, which may also contribute to accessibility.
https://fedibird.com/@noellabo/113876564190790916 -
I think we can use
summary
property onEmoji
object. It's one of those properties for which the spec allows multi-language mappings:schrieb am 21. Apr. 2025, 22:28 zuletzt editiert von@silverpill @hongminhee @thisismissem
`summary` could represent *some* kind of accessible information, but it's not obvious to me which kind exactly: should it be an accessible name (<https://developer.mozilla.org/en-US/docs/Glossary/Accessible_name >) or an accessible description (<https://developer.mozilla.org/en-US/docs/Glossary/Accessible_description >)? (Or even an HTML `title` attribute?)
(I think it's unfortunate that we need to reinvent an accessibility tree representation, when an AS2 `content` is just an HTML, which has already been equipped with a feature-rich and battle-tested accessibility framework called ARIA, but I digress.)
-
@silverpill @hongminhee @thisismissem
`summary` could represent *some* kind of accessible information, but it's not obvious to me which kind exactly: should it be an accessible name (<https://developer.mozilla.org/en-US/docs/Glossary/Accessible_name>) or an accessible description (<https://developer.mozilla.org/en-US/docs/Glossary/Accessible_description>)? (Or even an HTML `title` attribute?)
(I think it's unfortunate that we need to reinvent an accessibility tree representation, when an AS2 `content` is just an HTML, which has already been equipped with a feature-rich and battle-tested accessibility framework called ARIA, but I digress.)
schrieb am 21. Apr. 2025, 22:31 zuletzt editiert von@tesaguri @silverpill @hongminhee wouldn't it just be the alt text?
-
Requirements in that section are meant for those who want maximum compatibility. For example, JPEGs and images larger than 256 KB are supported by Pleroma and others, but Mastodon doesn't allow them.
Non-square emojis are a bit more complicated. They are not rejected by most servers, but might not be displayed properly by clients.
I just visited your instance and made a screenshot of how emoji is rendered by web UI (attached). The emoji is present, but I can't tell what is depicted there. Some clients enlarge custom emojis on hover, but not Mastodon, so I have to open the image in a new browser tab, or zoom in the page. This is no ideal, hence the recommendation in the FEP.
schrieb am 21. Apr. 2025, 23:45 zuletzt editiert von@silverpill @julian @hongminhee ugh mastodon android squishes this. These are both Mastodon bugs as far as I am concerned. I think as long as you specify what you are making maximum compatibility with that seems OK but long emojos are INCREDIBLY popular on all the misskey and misskey adjacent fediverse areas. So I would argue that usage should be spelled out in the FEP as well.
-
@hongminhee
Fedibird seems to have a feature that lets you see details about emojis, which may also contribute to accessibility.
https://fedibird.com/@noellabo/113876564190790916schrieb am 22. Apr. 2025, 00:43 zuletzt editiert von@hongminhee @silverpill @ozoramore @julian @liaizon @tesaguri
(This is in Japanese. Please use machine translation.)
カスタム絵文字については以前から問題意識があって、Fedibirdの実装を通じて解決策を模索してきました。
FEPを検討しているなら、ぜひ拾い上げてください。ひとまず概要を。
・スクエアではない絵文字の取り扱い
・アクセシビリティと多言語対応
・コピー許可と権利情報
・センシティブの扱い
・画像形式やサイズ、アニメーションの互換性やガイドライン
以下は、カスタム絵文字に付与可能な属性をできるだけ記載したサンプルです。
添付画像は、画像化されたテキストを中心とする絵文字に対し、代替テキストが設定され、ツールチップ表示されているサンプルです。
この絵文字のObject表現(JSON)はこちら。
https://fedibird.com/emojis/prohibits_importing_to_other_servers_ja.json人間向けの公開ページはこちら。
https://fedibird.com/emojis/prohibits_importing_to_other_servers_jaFedibirdのcustom_emojis APIのエンティティ
https://fedibird.com/api/v1/custom_emojis/prohibits_importing_to_other_servers_ja
-
Fedicon 2025 is currently taking place. All the videos are being posted in this PeerTube account
ActivityPub Test Kategorie43 vor 7 Tagenvor 7 Tagen1
-
I thought there were many highlight of FediCon 2025.
ActivityPub Test Kategorie43 vor 9 Tagenvor 9 Tagen1
-
-
-
-
Clarifying Costs of Running the Fediverse with Jerry from Infosec.Exchange
ActivityPub Test Kategorie 14. Juni 2025, 18:421
-
-