TL;DR

A former Facebook intern says the transgender pride flag emoji ended up as a five-codepoint ZWJ sequence because one symbol required an explicit emoji-presentation selector at the time. Vendor implementations that used that five-codepoint mapping helped persuade Unicode to accept the emoji without adding new codepoints.

What happened

In 2018 an intern working at Facebook encountered early internal attempts to ship a transgender pride flag emoji and investigated how it was encoded. An initial vendor mapping used either a private-use codepoint or a three-codepoint sequence built from the white flag, a zero-width joiner and the transgender symbol (U+1F3F3, U+200D, U+26A7). At that moment the transgender symbol defaulted to text presentation and therefore needed an emoji presentation selector (U+FE0F) to be valid inside an emoji ZWJ sequence. The intern recommended a five-codepoint sequence that included the necessary U+FE0F selectors and advised adding an emoji-rendering form for U+26A7. Vendors shipped that five-codepoint form (notably in messenger apps), producing a working emoji in the wild; the following year Unicode accepted the flag as a ZWJ sequence without requiring new codepoint allocations and updated U+26A7 to permit emoji presentation.

Why it matters

  • Interoperability: presentation selectors affect whether a sequence renders as a single emoji or separate characters across platforms.
  • Standards vs. practice: vendor implementations in the wild can influence how Unicode formalizes emoji sequences.
  • Technical correctness mattered: subtle details like presentation mode can determine whether a proposal is accepted.
  • Advocacy dynamics: the path to inclusion involved both grassroots proposals and practical vendor deployments.

Key facts

  • An early vendor approach used either a private-use codepoint or a three-codepoint sequence: U+1F3F3, U+200D, U+26A7.
  • U+FE0F is the emoji presentation selector; U+FE0E is its text-presentation counterpart.
  • Because U+26A7 defaulted to text presentation at the time, it needed a trailing U+FE0F to be valid inside an emoji ZWJ sequence.
  • The suggested five-codepoint mapping included two U+FE0F characters and was adopted by some messaging vendors.
  • Vendor implementations (for example on messenger apps) rendered the five-codepoint sequence as an emoji before full Unicode acceptance.
  • Unicode later accepted the flag sequence without assigning new codepoints, and updated U+26A7 to allow emoji presentation.
  • After U+26A7 acquired emoji presentation, a four-codepoint sequence became valid as well.

What to watch next

  • How platform vendors continue to handle emoji presentation selectors and ZWJ sequences — not confirmed in the source.
  • Copy/paste and fallback behavior between devices that do and do not support the sequence (the source describes intended fallback behavior).
  • Whether further formal clarifications to Unicode character presentation rules are proposed — not confirmed in the source.

Quick glossary

  • Codepoint: A numeric value that maps to a specific character in Unicode; one character may take multiple bytes when encoded.
  • U+FE0F (emoji presentation selector): A special character that, when placed after another character, requests that it be rendered in emoji presentation rather than text presentation.
  • U+200D (zero-width joiner, ZWJ): A non-printing character used to join adjacent characters so they display as a single combined glyph or emoji sequence.
  • Emoji presentation vs text presentation: Some Unicode characters have both a colorful emoji rendering and a plain text glyph; selectors like U+FE0F request the emoji form.
  • Private use area: Ranges of codepoints reserved for vendor- or user-defined characters that are not part of the official Unicode repertoire.

Reader FAQ

Why does the trans flag use five codepoints?
Because when the sequence was first implemented the transgender symbol defaulted to text presentation and needed emoji presentation selectors (U+FE0F) to be valid inside a ZWJ emoji sequence.

Did Unicode add a new codepoint for the trans flag?
No. The acceptance cited the existing sequence already deployed by vendors and did not require new codepoint allocations.

Who proposed the five-codepoint mapping?
The author of the source — an intern at Facebook in 2018 — says they recommended the five-codepoint approach and advised adding an emoji-rendering form for U+26A7.

Do all devices now show the flag the same way?
Not confirmed in the source.

Back in 2018, I was an intern at facebook1. I was also very early into my transition, so I was very in-the-loop with my trans collegeaues – and I heard…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *