/blog/

2024 0920 Uncensorable pictograms

Have you ever seen Scunthorpe Sans?

It’s a neat hack. It uses a feature of modern fonts called ligatures, which allow changing the way letters look when they’re right next to each other.

We would never tolerate Scunthorpe Sans -style redaction in all fonts installed by the operating system, but we do tolerate it when it comes to emoji. The problem is not just that emoji are censored, although of course they are — Unicode accommodates the rich language of the ancient Egyptians by providing separate glyphs for small (𓂑) and large (𓂒) breasts, but heaven forefend putting this kind of expressive power into the hands of the vulgar Tinder user — but because any such blackdenylist will change over time.

Companies change their emoji whenever they want, including in ways that can alter the meaning of existing text. The pistol emoji is a famous example that probably got a little too much criticism1 and counter-criticism2. Flags can be problematic as they change, or as nuclear powers demand obeisance. The best way to solve this is to simply let users send whatever they want as “emoji”, they same way they can send whatever they want as text.

As a user, I like emoji a lot. But I’ve never thought they made sense as text, as Unicode codepoints or as part of fonts. Anywhere users want to have little pictures, we should have built inline image rendering instead.3

Slack and Discord lead the way on this

Slack and Discord have had this for a while. Users can upload custom emoji for anyone else on the same server to use.

This provides part of what I want. It takes control of the emoji away from the platform provider, and puts it in the hands of a smaller authority: the server administrator. Server admins now control which users are allowed to add pictograms, and which ones they’re allowed to add.

Apple is adding support for user-defined pictograms

As of iOS 18 and macOS 15, iMessage now supports any sticker as an inline glyph.

Screenshot
An inline sticker sent on iOS 18

It’s interesting to me that they aren’t calling this “custom emoji” like Slack and Discord do. It’s just, you can add a sticker to an iMessage now, and it happens to be inline.

I can’t find a discrete link for this feature. I only found out about it from the MacStories iOS 18 review, where it is shown on page 12, near the bottom of the first section.

For the upcoming Genmoji feature, Apple created a new technology called Adaptive Glyph that allows tiny images to coexist on the same line as attributed text. Based on a square image format that supports multiple resolutions, alignment metrics for different scripts, and metadata for accessibility, this API lets stickers and Genmoji be displayed alongside text, attributed strings, and even HTML. They’re not Unicode characters; they’re something else entirely that Apple built specifically for its platforms.
Federico Viticci, MacStories iOS 18 review

(It’s strange that stickers and Genmoji will be displayed “alongside… HTML”, right? HTML already supports inline images.)

This goes a bit further than Slack and Discord: now inline glyphs can be any sticker, and users can make a sticker from any image. There is no server admin to ask permission of.

I can't seem to get this to actually work on up-to-date iPhones or Macs, but I assume that'll get fixed later this release cycle.

It seems to send OK as the above screenshot indicates, but all the people I’ve sent to show obviously wrong rendering. In my tests, the sender sees it working properly, but the receiver sees a +FFFD � REPLACEMENT CHARACTER where the sticker should be, and then the sticker in large format after the message. I’ve tested between two iOS devices as well with no difference.

Federico in the MacStories post says that inline sticker support is intended for Genmoji, which aren’t out yet, so I assume it’ll get fixed when that is released. It’s also worth noting that he was able to make sending and receiving work without any issue.

Screenshot
A mangled message received on macOS Sequoia 15.0

Future wishes

What I really want is a text interchange format that supports this idea that works across platforms and across apps. Slack’s work in Slack; Discord’s work in Discord; Apple’s work in iMessage. You can do something like this in different incompatible ways inside Word, Pages, and HTML.

Can you build a system that works for all of them? I am not sure what that ought to look like. Certainly you’d like copy and paste to work well.

What happens when you try to paste to plain text? It’s useful that emoji work in plain text documents, although I’m not sure that it wouldn’t be better to propose something like Markdown for pictograms that amounts to a plain text document with an SVG sprite sheet appended to it.

I also hope for improved UI for finding, saving, and adding custom pictograms. It would be great if it were part of the mobile keyboard experience, for instance.

Miscellaneous thoughts

  • Sans Bullshit Sans is similar to Scunthorpe Sans, but it censors annoying buzzwords with swear words instead.
  • Teranoptia is a font that uses ligatures to make “chimeric creatures”. You can type over the creatures at the bottom of that page to see how it works!
  • One can’t mention little pictures inline with text without mentioning sparklines.
  • I just found a TeX version of Byrne’s The First Six Books of Euclid with Coloured Diagrams. The original is a book published in 1847 that uses diagrams to explain otherwise dense trigonometry from Euclid, and it’s just beautiful to look at. The TeX recreation is quite pretty as well. While even I wouldn’t argue that iMessage should have powerful layout features for writing books like this (unless…?), they’re an example of people using inline pictures to replace words that feels very different from modern txt speak and therefore worth listing here.

  1. Wikipedia quotes an Insider article asking “What if a joke sent from an Apple user to a Google user is misconstrued because of differences in rendering? Or if a genuine threat sent by a Google user to an Apple user goes unreported because it is taken as a joke?” which I can only read in the gullible worried tone my parents used to explain that razorblades in candy were the reason I couldn’t go trick or treating. ↩︎

  2. “Nerfing of the gun emoji matches rise of the woke mind virus, as a core tenet is equating fake harm with real harm”, says Elon Musk, apparently concerned he wasn’t posting enough cringe. ↩︎

  3. The take that emoji don’t belong in Unicode was too hot to lead with, I had to bury it after a milder decoy hot take that the omission of emoji boobs is censorship. ↩︎

Responses

Webmentions

Hosted on remote sites, and collected here via Webmention.io (thanks!).

Comments

Comments are hosted on this site and powered by Remark42 (thanks!).