a method for encoding pride flags as emoji

heads up! this page is kinda heavy on the kinds of unicode symbols (namely flags) that might not display properly on your system.


on 28 march, 2022, Unicode1 released a blog post titled The Past and Future of Flag Emoji, in which they announced that they would no longer take proposals for flag emoji, including pride flags, and gave a bunch of really, really shitty justifications as to why.2 while for subregion flags (ie: Quebรจc, Catalonia, etc.) there's theoretically an avenue for people to implement them under current guidelines,3 things like pride flags have no established mechahnism to be implemented, and since Unicode's solution is "just use stickers lol" that kinda just leaves pride flags up in the air to eventually be covered by ad-hoc implementations that aren't compatible with each other (or just never be added), which is of course the thing that Unicode was made to solve in the first place.

so in our infinite anger at this niche technical decision in a subject we don't really have any qualification to do anything with, we tried making a framework for encoding pride flags as emoji.

to give a bit of background for how this works:

ISO standard 3166-1 alpha-24 contains certain codes that are reserved for use by individual organizations/people/etc. to use as they want:

  • AA
  • the latter half of the codes starting with Q (QM, QN, etc., through QZ)
  • all codes starting with X (XA through XZ)
  • ZZ

naturally, ISO 3166-25 codes that correspond to those reserved codes are also free.

you can kinda split the way unicode handles flags into four different methods:

  • hard-coded as singular codepoints (the handful of these are mostly really basic stuff like U+1F3C1 Chequered Flag ๐Ÿ and U+1F3F4 Waving Black Flag ๐Ÿด)
  • formed using zero-width joiners to combine one of the basic flag emoji with some other emoji (the pirate flag ๐Ÿดโ€โ˜ ๏ธ, rainbow flag ๐Ÿณ๏ธโ€๐ŸŒˆ, and trans flag ๐Ÿณ๏ธโ€โšง๏ธ are all formed like this, as is WhatsApp's custom implementation of the Refugee Nation Flag, ๐Ÿณโ€๐ŸŸงโ€โฌ›โ€๐ŸŸง)
  • converted from a sequence of regional indicator emoji that corresponds to a valid ISO 3166-1 alpha-2 code (used for all country flags)
  • converted from a sequence of ๐Ÿด, followed by an ISO 3166-2 code in tags6 and an end sequence tag (used for all the subdivision flags, or at least it would be if they were supported7)

our workaround for this is to use the method for implementing subdivision flags to encode pride flags, replacing the "country" code with one of the reserved values. we're personally going with QU, because queer. using the current method exactly (writing out the ISO 3166-2 code only with lowercase letter tags), we could encode 17,576 different three-letter sequences (and thus, that many flags), but if we wanted to use the entire tag set (of 95 symbols), we could get 857,375 three-character sequences.8 with this system, the asexual flag could be represented as, for example:

  • U+1F3F4 Waving Black Flag ๐Ÿด
  • U+E0071 Tag Latin Small Letter Q
  • U+E0075 Tag Latin Small Letter U
  • U+E0061 Tag Latin Small Letter A
  • U+E0063 Tag Latin Small Letter C
  • U+E0065 Tag Latin Small Letter E
  • U+E007F Cancel Tag

and it would render out as the asexual flag and be copyable between different platforms as normal ass text (assuming this were ever adopted).

the caveat of this (and to be fair its a pretty big one) is that we don't know for sure how there would be concensus on what codes are for what flags without a central authority managing it (would the lesbian flag be les, lsb, wlw, etc.?). absent any sort of authority emerging that would be able to maintain a list of some kind we're inclined to just leave it to implementer/community choice, but that kinda falls back into the issue of interoperability that this would be trying to solve, though at least there'd be a framework for how to go about things now. idk we're just a couple trans girls on the internet that are mad about nerd shit.

that being said, here are our thoughts for some potential codes:

  • abs - abrosexual
  • ace - asexual
  • agn - agender
  • aly - straight ally
  • aoa - aroace
  • aro - aromantic
  • bgn - bigender
  • bis - bisexual
  • cas - cassgender
  • dmb - demiboy
  • dmg - demigirl
  • dmn - deminonbinary
  • dmr - demiromantic
  • dms - demisexual
  • gay - gay men
  • gfl - genderfluid
  • gqr - genderqueer
  • grr - greyromantic
  • grs - greysexual
  • int - intersex
  • lsb - lesbian
  • mts - multisexual
  • neu - neutrois
  • nbn - nonbinary
  • omn - omnisexual/omniromantic
  • plg - polygender
  • pls - polysexual
  • ply - polyamory
  • pns - pansexual
  • qpt - queerplatonic
  • rbn - rainbow (for completeness)
  • tng - transgender (also for completeness)
  • tnf - transfemme
  • tnm - transmasc

we're not expecting this to take off or make much of an impact or anything, these are just our ramblings in response to a shitty decision. that being said, if you do happen to make any use out of this we'd love to see it!

notes:
/other/prideemoji.html

last updated 02 Jul 24


link to the site!