Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Fancy fonts you can use almost anywhere (beautifuldingbats.com)
247 points by shadowfaxRodeo on Dec 17, 2018 | hide | past | favorite | 165 comments

This is (ab)using unicode, for example the F is actually a Mathematical Bold Fraktur Capital F:


This is terrible for screen readers and the like which are unable to read or understand these unicode characters making accessibility a real concern.

Things like screen readers can still try the Unicode decomposition techniques to try to make sense of the nonsense. The Fraktur F does decompose to "F", in this particular example. A better example is something like Lowercase Greek Letter Alpha which does not decompose to Latin "a", despite the readable similarity to most Latin character form audiences.


Though there too, there are patterns screen readers can attempt to find to figure out when alpha is pretending to be Latin a.

That said, it's still not a great idea to use them for text anywhere. It puts a lot of burden on the reader's pattern matching skills. Not just screen readers, but human readers too; everyone reads them a bit slower, and that's before you consider the usual human skill/ability modifiers such as dyslexia that make these things so much worse, too.

I wonder actually. Google seems to understand these, you can search with them. I wouldn't be surprised if screen readers understand these symbols. They're originally for Mathematics, and I'm sure there's plenty of blind mathematicians.

I wouldn't be surprised if screen readers understand these symbols.

I develop web sites with screen readers in mind, and I would be very surprised if they could handle this sort of thing consistently.

Google spent billions of dollars learning how to search and interpret the web. Screen reading companies don't have that kind of scratch.

Also, it's important to remember that screen readers are about more than just the blind. There are screen readers that help people learn a new language, or translate text into simplified forms for people with low education, or low attention (think of the Mac's built-in text summarizing service).

For people who have a hard time reading custom fonts because of limited sight, or limited attention, they often override custom CSS fonts with something easier to read. This sort of thing will make the page unusable.

I'm not trying to suggest screen reading is easy, but the billions of dollars Google invest are not comparable here as they obviously do a huge range of things and the reader tools need to do a much narrower range.

This came up at Halloween with all those pleas not to post tweets heavy with emoji due to the issues with screen readers. I get the concern, and I'd typically do my best to be inclusive with personal content and compliant with accessibility on professional content, but there is a balance to be struck - we don't need a Procrustean restriction on what are now reasonably established forms of communication, what we need is for screen reader efforts to step up and work in these cases. It may seem a challenge (especially for legacy coded readers) but other posters already linked to basic solutions that can help on the fonts and this isn't beyond the wit of human ingenuity. This is an opportunity.

I'm not saying that we need to prohibit anyone from using crazy fonts. I'm merely responding to a postulation that screen readers could probably handle the text. My response, from experience, is that they probably can't, and most people misunderstand the myriad of uses for screen reading technology.

Odd fonts like this have a place. For example, I don't expect any screen reader ever to be able to interpret a PETSCII drawing.

It's less "can they render them" and more "do they maintain their meaning in alternate renderings".

For example, it's common in these to use non-latin characters that visually resemble latin characters. But if you were to try and substitute them literally, either as their actual phonetic sound, or a latin equivalent that is semantically similar but visually different, you risk breaking the meaning.

It's a bit like when old manuscripts use letters that look like "s" and "f" in places that seem nonsensical today.

In google's case, it's certainly worth it to write a little interpreter that maps the visual meaning to its latin equivalent so you can get better search results.

>It's less "can they render them" and more "do they maintain their meaning in alternate renderings".

I just entered "this is a test" on the site in Safari and enabled VoiceOver. It reads it as "Mathematical Bold Fraktur Small t. Mathematical Bold Fraktur Small h" and so on.

Completely broken for those who rely on VoiceOver as a screenreader.

Just configure it to not pronounce the "Mathematical Bold Franktfur Small" bits

Wow, that's actually pretty neat: https://www.google.com/search?q=site%3Anews.ycombinator.com%...

Anyone know if there are any existing libraries that do this conversion?

The ICU [1] transliterator does this. Here is an example showing how to use it:

    icu::ErrorCode status;
    auto t = icu::Transliterator::createInstance("Any-Latin; NFKD", UTRANS_FORWARD, status);
    t->transliterate("unicode string");
[1] http://site.icu-project.org/

Here's a test page for one.


If you use c#:


Look up Case Folding for how this is done, most languages have libraries to handle it.

This is called unicode normalisation, specifically NKFD form. You can do it in two lines of Python. This was covered last time a similar website came up (plagiarising myself):


unicode normalisation: http://unicode.org/reports/tr15/

Nobody in that thread tried it on an actual screen reader then, either. Someone did mention that iOS got well confused by it, so there's one data point.

Some of them are outside the mathematical range, that just happened to be the one I picked.

Google has a lot of resources to do normalization, when IDNA in the URL bar became common they and other browser manufacturers had to put resources behind similar looking glyph attacks to make sure that you were actually on google.com and not on some site that was using a homoglyph attack.


This may explain why Google is able to discern these use cases.

In chromium, the glyph attack defense works by normalizing to a "confusability skeleton" -- the ICU library actually does the normalization. Even within latin-1 this does some mangling: m gets normalized to rn, w to vv, etc. The query rewriting is a different problem, but it's possible it uses the confusables list as an input.

blind mathematicians don't write english to communicate in these unicode blocks... These blocks don't exist to be used for writing words in the english language.

Yes, I just mean to say, if you were creating a screen reader, it wouldn't be that hard to take this sort of thing into account. So, maybe they do. Either way, I'll add a little warning to the site.

Even if it is not hard to take this thing into account, it is definitely hard to take all the things into account. Adding more things doesn't help.

Ah yes.. The old "if you were creating <thing author doesn't know much about>, it wouldn't be that hard to take this sort of thing into account"

Well, we live in an age of wonder, I heard they landed a man on the moon.

Interesting. This made me wonder about small caps. Aᴘᴘᴀʀᴇɴᴛʟʏ Gᴏᴏɢʟᴇ ᴅᴏᴇsɴ'ᴛ sᴜᴘᴘᴏʀᴛ ᴛʜᴏsᴇ.

I tested the ones with circles and squares, and Google definitely doesn't understand them.

It's also against web compat standards to use these characters without providing alt text (failing case: https://www.w3.org/TR/WCAG20-TECHS/F71.html)

I agree, but it has non-abuse uses that I did not realise I missed. For example just a simple smoke test has more nuaances than expected ...

𝕋𝕙𝕚𝕤 𝕥𝕖𝕤𝕥 𝕥𝕖𝕩𝕥 𝕝𝕠𝕠𝕜 𝕝𝕚𝕜𝕖 𝔼𝕟𝕘𝕝𝕚𝕤𝕙 𝕓𝕦𝕥 𝕚𝕤 𝕦𝕤𝕚𝕟𝕘 𝕟𝕠𝕟-𝕒𝕤𝕔𝕚𝕚 𝕔𝕙𝕒𝕣𝕒𝕔𝕥𝕖𝕣𝕤 𝕒𝕟𝕕 𝕤𝕠 𝕚𝕗 𝕥𝕙𝕚𝕤 𝕣𝕖𝕞𝕒𝕚𝕟𝕤 𝕣𝕖𝕒𝕕𝕒𝕓𝕝𝕖 𝕥𝕠 𝕒𝕟 𝔼𝕟𝕘𝕝𝕚𝕤𝕙 𝕤𝕡𝕖𝕒𝕜𝕖𝕣 𝕨𝕖 𝕔𝕒𝕟 𝕓𝕖 𝕣𝕖𝕒𝕤𝕠𝕟𝕒𝕓𝕝𝕪 𝕔𝕠𝕟𝕗𝕚𝕕𝕖𝕟𝕥 𝕨𝕖 𝕒𝕣𝕖 𝕙𝕒𝕟𝕕𝕝𝕚𝕟𝕘 𝕦𝕟𝕚𝕔𝕠𝕕𝕖 𝕡𝕣𝕠𝕡𝕖𝕣𝕝𝕪 𝕥𝕙𝕣𝕠𝕦𝕘𝕙𝕠𝕦𝕥 𝕥𝕙𝕖 𝕧𝕒𝕣𝕚𝕠𝕦𝕤 𝕤𝕪𝕤𝕥𝕖𝕞𝕤 𝕠𝕦𝕣 𝕕𝕒𝕥𝕒 𝕥𝕣𝕒𝕧𝕖𝕝𝕤.

Can confirm, put a hello world in codepen.io with some other text and JAWS skipped right past it.

I'd kind of expect screen readers to be able to apply Unicode compatibility decomposition http://unicode.org/reports/tr15/#Canon_Compat_Equivalence since there are many characters that are just visual variants. Ligatures like ffl or the like are at least somewhat common e.g. in PDFs. On the other hand, maybe that breaks other stuff and only whitelisted characters are converted.

Maybe a HN reader using a screen reader can describe how theirs handles these characters.

quick rundown from my experience:

NVDA: oss, people have hacked in normalization that they can flip on when they hear something that sounds like nonsense, and then flip back off after reading that particular part.

JAWS: people have to listen to a bunch of crap if there's no alttext and will not be able to understand your content

VoiceOver OSX: people have to listen to a bunch of crap if there's no alttext and will not be able to understand your content

I'm not a regular screen reader user but VoiceOver (in macOS High Sierra) will not read the whole words, it will only say "Show HN." Because I can see there's more there, I can delve deeper and navigate character-by-character at which point it will say "f," "a," "n," "c," "y," "space," etc.

That implies that PDFs work with glyph indices, not Unicode code points. How do PDFs work for shaped languages like Hindi? In a script like that, you may have glyphs without any corresponding Unicode code point. Or does the PDF perhaps store the original unshaped text?

Tt's possible for a PDF to be annotated with the original Unicode text (look up the `/ActualText` feature in the spec), to support extraction of the underlying text rather than the shaped glyph stream for purposes such as copy/paste and search.

However, few PDF generators do this, and not all PDF readers have good support for it. So results vary depending on the specific tools and use-case.

It might just be the output of some particular programs that pre-bake their ligatures. All I know is that sometimes, I try to copy-paste text out of a PDF only to end up with some annoying ligatures interspersed throughout.

> This is terrible for screen readers and the like which are unable to read or understand these unicode characters making accessibility a real concern

Yes, Firefox for Android doesn't render it properly.

Here it works fine, what do you mean?

Results will depend on the available fonts your device vendor chose to include.

Could also have issues with systems that have broken 16-bit-only Unicode support (Java, Windows, ...) in which code points beyond U+FFFF have to be encoded with some surrogate pair nonsense that is likely untested in many text-handling situations.

That's like saying UTF-8 requires "nonsense" pair, triplet, or quadruplet chars. UTF-16 handles all Unicode code points just fine. UCS-2 does not. Windows transitioned from UCS-2 to UTF-16 long ago.

The problem is Windows programs, not Windows per se.

The difference is that UTF-8 gets tested in this regard; multi-byte encoding situations actually occurring in UTF-8 are not rare occurrences that only trigger on funny characters that nobody uses.

(For that matter, four-byte UTF-8 situations are in the same boat, of course, but not two- or three-.)

> (For that matter, four-byte UTF-8 situations are in the same boat, of course, but not two- or three-.)

Yeah. Notorious example here is MySQL's "utf8" column type only supporting 3-byte UTF-8 sequences.

I don't see why screen readers can't just be extended to handle characters that look like F.

Because they have uses outside of the abuse. If you always expect that they're being used improperly, then you mess up the actual use cases.

What would be an example of a string like "𝕙𝕖𝕝𝕝𝕠" appearing in a context where the screen reader should not attempt to pronounce it? Note that in math usage, a lone ℝ should be pronounced exactly the same way as a lone R.

In math usage an ℝ might be "the Regular set" and involved in equations that use a variable R. It's not unusual, and in fact, sometimes important, when reciting math as speech to make it clear which is the "bold" or "set" or "group" R, versus which is the ordinary R.

Someone using a screen reader to learn a new language.

There are no natural languages that use mathematical blackboard bold script, although you are right that screen readers probably shouldn't try to read Cyrillic according to what English letter the characters look the most like.

Well, because it's not an F, and how would you deal with this: 𓃓 I mean it's a bull symbol.

I think mapping common lookalikes to their corresponding Latin-1 glyphs would be a broad improvement, and with websites like this collecting them it may not even be all that much work.

Although, like you say, it would be nice if screenreaders could produce verbal descriptions of iconographic symbols. That would be a lot of work but it would be helpful.

𓃓 = 𝕓𝕦𝕝𝕝

Depending on context it may not actually mean "F". Screen readers are not yet capable of fully understanding the meaning behind the text they are reading.

If for example someone uses this to write a mathematical formula, having a screen reader says "F" changes the entire meaning.

Could this be done, absolutely, but it is something to be aware of and is something I noticed on Twitter where blind users were complaining that they were unable to "read" Twitter messages using this, thereby making them second class citizens all over again.

If I were to write a math formula in ASCII, it would probably have strings of multiplied variables that would be indistinguishable from English words to a screenreader that didn't know anything about meaning. The only way it would know to sound out the letters is if they had spaces or asterisks between them. The additional glyphs would do nothing to change this.

Screen readers should faithfully render characters as sound so people with limited/no eyesight can engage with written language, not make a guess that you meant to write cursed/fancy text instead of what those characters are for.

What do you think the general development budget for a screen reader is compared to the development budget for Google Search services?

Compared to the marginal cost of implementing this small additional input sanitization, both budgets are infinite.

NVDA is open source https://github.com/nvaccess/nvda for me it would be an inordinately expensive use of my time, but for you?

at any rate, both budgets are not infinite, and it's infuriating to hear the described as such.

They certainly could, but resources are limited and they probably have more important tasks.

ኾᥱΛ᜶ұ, you don't?

Just use mysql < v8 to store your data. By default it has utf8mb3 anyway. Problem solved ;)

HN is a plain-text site, so we originally buried this. But then we got an email we couldn't refuse (see below). So have at it.

All: Please don't submit stories with non-plaintext titles, and please don't post non-plaintext comments in other threads. Thanks!


𝕀 𝕣𝕖𝕔𝕖𝕟𝕥𝕝𝕪 𝕡𝕠𝕤𝕥𝕖𝕕 𝕒 𝕡𝕣𝕠𝕛𝕖𝕔𝕥 𝕥𝕠 𝕊𝕙𝕠𝕨 ℍℕ,

𝒶 𝓌ℯ𝒷𝓈𝒾𝓉ℯ 𝓉𝒽𝒶𝓉 𝒸ℴ𝓃𝓋ℯ𝓇𝓉𝓈 𝓉ℯ𝓍𝓉 𝒾𝓃𝓉ℴ

𝔐𝔞𝔱𝔥𝔢𝔪𝔞𝔱𝔦𝔠𝔞𝔩 𝔄𝔩𝔭𝔥𝔞𝔫𝔲𝔪𝔢𝔯𝔦𝔠 𝔖𝔶𝔪𝔟𝔬𝔩𝔰.

𝐓𝐨 𝐦𝐲 𝐬𝐮𝐫𝐩𝐫𝐢𝐬𝐞 𝐚𝐧𝐝 𝐝𝐞𝐥𝐢𝐠𝐡𝐭 𝐢𝐭 𝐬𝐡𝐨𝐭 𝐭𝐨 𝐭𝐡𝐞 𝐭𝐨𝐩,


𝚋𝚞𝚝 𝚝𝚑𝚎𝚗 𝚒𝚝 𝚠𝚊𝚜 𝚛𝚎𝚖𝚘𝚟𝚎𝚍, 𝚒𝚝 𝚜𝚎𝚎𝚖𝚎𝚍 𝙷𝙽

𝔣𝔢𝔞𝔯𝔢𝔡 𝔴𝔢'𝔡 𝔞𝔟𝔲𝔰𝔢 𝔬𝔲𝔯 𝔫𝔢𝔴-𝔣𝔬𝔲𝔫𝔡 𝔭𝔬𝔴𝔢𝔯.

𝙉𝙖𝙩𝙪𝙧𝙖𝙡𝙡𝙮, 𝙄 𝙘𝙤𝙣𝙨𝙞𝙙𝙚𝙧 𝙩𝙝𝙞𝙨 𝙖𝙣 𝙞𝙣𝙟𝙪𝙨𝙩𝙞𝙘𝙚,

𝔸𝕟𝕕 𝕒𝕤𝕜 𝕥𝕙𝕒𝕥 𝕪𝕠𝕦 𝕔𝕠𝕟𝕤𝕚𝕕𝕖𝕣 𝕞𝕪 𝕡𝕝𝕚𝕘𝕙𝕥…

𝑰 𝒂𝒎 𝒂 𝒚𝒐𝒖𝒏𝒈 𝒘𝒆𝒃 𝒅𝒆𝒗𝒆𝒍𝒐𝒑𝒆𝒓,

𝖔𝖋 𝖔𝖓𝖑𝖞 𝖙𝖜𝖔 𝖘𝖈𝖔𝖗𝖊 𝖆𝖓𝖉 𝖊𝖎𝖌𝖍𝖙 𝖞𝖊𝖆𝖗𝖘.

𝕥𝕣𝕪𝕚𝕟𝕘 𝕥𝕠 𝕞𝕒𝕜𝕖 𝕞𝕪 𝕨𝕒𝕪 𝕚𝕟 𝕒𝕟 𝕦𝕟𝕗𝕠𝕣𝕘𝕚𝕧𝕚𝕟𝕘 𝕨𝕠𝕣𝕝𝕕.

𝒲𝒽𝒾𝓁ℯ 𝓉𝒽𝒾𝓈 𝓉ℴℴ𝓁 𝒾𝓈 ℯ𝓃𝓉𝒾𝓇ℯ𝓁𝓎 𝒻𝓇ℯℯ,

𝚒𝚝 𝚠𝚘𝚞𝚕𝚍 𝚑𝚎𝚕𝚙 𝚖𝚎 𝚋𝚞𝚒𝚕𝚍 𝚌𝚘𝚗𝚗𝚎𝚌𝚝𝚒𝚘𝚗𝚜.


𝑰'𝒅 𝒓𝒆𝒂𝒍𝒍𝒚 𝒂𝒑𝒑𝒓𝒆𝒄𝒊𝒂𝒕𝒆 𝒊𝒕

TIL score = 20

Yeah, the first I learned of the term "score" was (via grade school social studies/history class) from Abraham Lincoln's Gettysburg Address: ""Four score and seven years ago our fathers brought forth on this continent..."

Yeah I wouldn't call 48 young. Btw "4 score and 10" is still basically how the French say 90.

> Yeah I wouldn't call 48 young

I read this as sarcastic/self-deprecating humor

I was just about to go to bed, when I had the thought—did i write two score? and sure enough, i did.

I meant one. I'm one score and eight.

𝒯𝒽𝒶𝓃𝓀 𝒴ℴ𝓊!

Ỹ̹̼̰͚̺̥ẻ̥̏p͔̭͙̐ͪ̇͊,̤̪̯̙̣ ̰̣̼̻̺͈a̜͚̟ll ̮̼̙̗o͇f̜ t̳̬͍̤͖h̝o͉͚̩̗s̠͙̗̝̬͕ͅḙ͇̬̱͔̟ ͖̘̖͉ͅa͇̥̖͎̜͇r͓̳e͔̙͙ ̞̦͈u̪̤̳̟̞̰s̼̣̩̗i̭̯n͔̟̞͕̹g̩͇͍̗͖̻ ͕̪̮̩v͙̳͍̞͓ͅa̹̫̰ͅlịd̯͚̘̯ ̤̙A̜̪S̗͎͖̥̠̳C͇̮I͓̭̟̲I̦̟̲/̶̞̞̱͈̰̣͙̥̹̪̯͚̝͈̹̹ ̛͈̱̻͍̬̟͙̰̠̟̖̕Ú̡͉͙̻̗͙̭͉̖̖n̨̡̗̩͈̭̻͕̭͇͇̲͙̖̫̯̜͚͈ͅi͏̷̀͏̪͎̜̜̠͇̩͙̗̯͍̮̜͖̮͓͓̫c̺͉̦͓͙̤̼̰̀͠ͅo͏̯̜̥̣̯͕̻̮͘͡d̖͉͈̬͍̩͚̬̯̰̳̀́͞ͅe̡̗̻̫͕̙̘̲̫̦͉̬̖̭̺͡͝ ͖̺̳̟͓͇c̠̟͎̼̲̳h͖̣͕̯a̜͔͉̼̮r̗a̰̘̭͚̠̮̝c̱̰̦͕̰ͅͅt͉er̟͉̫͍̥̦s͈͖̤̞.


日本の作品も (🅙🅐🅟🅐🅝🅔🅢🅔 also works)

中国也有作品 (ℭ𝔥𝔦𝔫𝔢𝔰𝔢 too)



║ Those have been around for a very long time and were very popular on teen blogging platforms like skyrock, myspace, etc. ║



We called those corrupted-looking fonts "Zalgo"

Name coming from this post IIRC: https://stackoverflow.com/a/1732454/1091116

Zalgo comic edits started on SomethingAwful many many years ago, and had a resurgence on 4chan many years ago that lead to the Zalgo text corrupter.

>Zalgo comic edits started on SomethingAwful

Everything started on SomethingAwful many many years ago.

All your base

How are you, gentlemen?

What an epic response.

the an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n​ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱

13 square boxes on Linux detracts from the effect somewhat.

Context: https://stackoverflow.com/questions/1732348/regex-match-open...

But you aren’t going to be able to read that either. Try your phone?

You mean Unicode?

Please don't use this. Concrete example: if you use the OpenDyslexia font and have configured your browser to override individual website's fonts, this is what you see: https://i.imgur.com/aCk2ShW.png

I'm just seeing black boxes with X marks inside. Can't read a thing. This is on chrome on my Moto G4.

Update your browser (or install firefox mobile) - works just fine on my motog

Firefox just shows gray boxes. Both browsers are the latest available: 71.0.3578.98 for chrome and 63.0.2 for firefox. Automatic updates are on as is the default, I think, for everybody. There are no pending updates right now for anything. I'm using the android that came with the phone, which is stock android 7.

Anyway, the point of my post was to show that "you can use almost anywhere" should be taken with an appropriate amount of salt. I take a spoonful.

Note: To see what Unicode characters are in a piece of text, one can paste them into a tool like Uniview: https://r12a.github.io/uniview/ (Developed by one of the W3C i18n people)

𝒞ℯ𝒸𝒾 𝓃'ℯ𝓈𝓉 𝓅𝒶𝓈 𝓊𝓃 𝒻ℴ𝓃𝓉

*une (car une police)

fonte* (to be perfectly French)

Interesting, looks like Firefox automatically resolves these to the real letters in the address bar, but leaves them as is for google search. Nice job aggregating these into an easy-to-use font.

I'm guessing you mean on a desktop? On my Android phone, Firefox renders each letter as a grey box. Had to switch to Chrome to see the actual text :(

Seen a few comments like this. Old Version of Android? Because my FF on Android 8.1 renders it flawlessly.

What fonts are present (and therefore what characters will render successfully) depends not just on the version of Android, but also on the decisions of the device vendor about what to include.

I have an Android One phone running 8.1.0. I would normally expect font issues to be related to the underlying OS, but then I don't understand why Chrome works and Firefox doesn't.

On Android 7.1.1/Chrome: https://m.imgur.com/a/K97ohjV

I get grey boxes on Pixel & Android 9 . ℬℴ𝒻... 𝒥ℯ 𝓃ℯ 𝓈𝒶𝒾𝓈 𝓅𝒶𝓈

Nice! Submission's UI is way slicker, but for more options and a more OG-web feel, this page is my go-to for these: http://qaz.wtf/u/convert.cgi?text=This+is+pretty+fun+too.+Do...

I've been using http://qaz.wtf/u/convert.cgi for ages. Little bit more dated interface, but same idea. That utility also does some pseudo-alphabets using characters from other scripts.

Doesn't seem to work on Android devices. All I see is missing unicode characters. Roboto doesn't seem to have have these glyphs.

On Mac, most of the glyps in the title seem to be from STIX font.

Using Mozilla/5.0 (Linux; Android 9; Nokia 7 plus) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36 and it works fine here.

Works for me, Chrome on OxygenOS (OnePlus).

LG G6 Stock 7.0. Everything is a grey block

Roboto does have these glyphs, but only if you have a relatively recent Android version.

There is some explanation here: https://news.ycombinator.com/item?id=18468045

It should definitely include Zalgo Text (or Cthulhu text as I know it): https://www.zalgotextgenerator.com/

I know it from the first reply here, which I would say it's a well known StackOverflow question/answer by now: https://stackoverflow.com/q/1732348/938236

𝖋𝖆𝖓𝖈𝖞 𝚏𝚊𝚗𝚌𝚢 𝕗𝕒𝕟𝕔𝕪 𝒻𝒶𝓃𝒸𝓎 𝙛𝙖𝙣𝙘𝙮 ⓕⓐⓝⓒⓨ 🅵🅰🅽🅲🆈

Interesting - I thought using Unicode characters would break text search capability - but when I did the old Ctrl-F 'find' in Chrome and looked for the word 'fancy', it detected all of the above. Intriguing, because in another thread here, there is mention of a gothic 'a' not being treated as a standard letter 'a'...

One of the hardest parts of Unicode is properly implementing tolower() - which is often used for text search.

I haven’t delved into the symbol area of Unicode you’re talking about here but I’d bet those all evaluate to “fancy”.

[Edit]: Except that's probably not what's going on here. Someone went out of their way to treat symbols containing text as plain text for searching.

Doesn't work for me in Firefox

Whenever Fraktur comes up I feel compelled to link to one of my favorite Wikipedia articles, about a German ideological debate centered around two font faces, Antiqua and Fraktur: https://en.wikipedia.org/wiki/Antiqua%E2%80%93Fraktur_disput...

I notice this is already being abused in submissions to HN. Sigh. A user being able to override a site's restrictions on their input seems like a horrendous idea, not to mention the accessibility implications.

Just looking at the comment section here I have concluded that this is a blight on the web. Sites (unfortunately) should go ahead and update to strip this BS out

...and break the crap out of most software.

And yet it works in the weirdest places. Saving some of the text in a file and opening it in a Python interpreter works fine, it even counts the numbers of letters right.

You can even use it in your Python code, for better or worse:

  for 𝖓 in 𝖗𝖆𝖓𝖌𝖊(50):
      if 𝕟 % 15 == 0:
      elif 𝓃 % 3 == 0:
      elif 𝓷 % 5 == 0:
The identifiers are normalized.

This is fantastic. How does this work?


Using characters that are in Unicode, like black letter, double-strike and whatnot.

I am partial to using Unicode Emoji to add graphics/icons to applications that don't support those. Surprisingly, almost no software removes emoji symbol range (HN does, wisely). But this seems more annoying than clever. I mean, it's still text, except barely readable and bound to break some common-sense UI interactions.

I upvoted this post for two reasons: 1) Unicode fuckery 2) I want it to end up next to the Millitext post from today

On my Firefox for Android, this is unreadable. I had to use Firefox on Windows to see what is this all about.

My Firefox (63) on Android (8 I think, it's a galaxy s7) renders everything on this Page just fine.

Very cool. I don't know if this counts as a bug as it's not really the intended use, but if I copy one of the results and then paste it into the "Write something here..." input, all the results then match the pasted style rather than being re-styled.

Thanks, this is intended. It makes the code less complicated, but also means you can add the different fonts together more easily, which is particularly good for mobile.

because, if i can work it out, the script takes ascii char 69 (E) and maps it to say unicode 2107 which is the Euler Constant and looks like a scripted E - so when you then paste unicode 2107 into the app again, it has no map for 2107 back to 65 and so cannot "change" fonts

That's what I assume anyway.

This is awesome! But how does it work? I don't understand how this is possible

Unicode has a lot of characters that look like English letters. For example it has ℝ, the standard symbol for the set of real numbers. All together they form alphabets.

They're included in unicode for whatever reason [1]. It'll work in everything that handles unicode properly and has a font that includes those characters.

[1] https://unicode-table.com/en/1D573/

𝕀, 𝕥𝕠𝕠, 𝕤𝕠𝕝𝕚𝕔𝕚𝕥 𝕒𝕟 𝕖𝕩𝕡𝕝𝕒𝕚𝕟𝕒𝕥𝕚𝕠𝕟 𝕗𝕣𝕠𝕞 𝕥𝕙𝕖 𝕔𝕣𝕖𝕒𝕥𝕠𝕣 𝕒𝕤 𝕥𝕠 𝕙𝕠𝕨 𝕥𝕠 𝕒𝕔𝕙𝕚𝕖𝕧𝕖 𝕥𝕙𝕚𝕤 𝕣𝕖𝕞𝕒𝕣𝕜𝕒𝕓𝕝𝕖 𝕗𝕖𝕒𝕥.

In the early 2000s, unicode added a block of Mathematical Alphanumeric Symbols. The styles stay constant because 𝖊, ℯ, and 𝓮 might mean different things.

𝙄 𝙩𝙝𝙖𝙣𝙠 𝙮𝙤𝙪

There's a program/extension somewhere that allows these extra "fonts" in facebook comments sections... One of my family members started typing in some weird math font that broke on my old tablet.

I tried some diacritics letters and the site didn't handle those. Is it issue of the site? or those special characters don't include various latin based diacritics? German Umlauts? Polish ąęćłńóśźż ? etc

These special characters were put in Unicode based on their use as identifiers in maths and such. Diacritics aren't used there, so a tool exploiting those character ranges can't support them either.

These characters aren't meant to be used to write words and sentences in.

  ~ $ 𝖑𝖘 -𝖑𝖆
  fish: Unknown command '𝖑𝖘'
No surprise here.

not sure if it's been mentioned already but https://tell.wtf offers a similar service to this along with a rather intelligent unicode pallete and the ability to draw characters to try and match characters you're looking for. also, since z̼͖̺̠̰͇̙̓͛ͮͩͦ̎ͦ̑ͅa̘̫͈̭͌͛͌̇̇̍l͕͖͉̭̰ͬ̍ͤ͆̊ͨg͎͚̥͎͔͕ͥ̿o͎̜̓̇ͫ̉͊ͨ͊ was mentioned, https://eeemo.net ftw

I suggest you also check out the tools on http://qaz.wtf/u/

Would you mind checking UTF-8 support on the fonts? It seems the fonts don't support it.

You can use this as an example: ěščřžýáíasdfghjk

𝗧𝗵𝗶𝘀 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗲𝗹𝘆 𝗹𝗼𝗼𝗸𝘀 𝗮𝗯𝘂𝘀𝗶𝘃𝗲... 𝘆𝗼𝘂 𝗰𝗮𝗻 𝗲.𝗴. 𝗽𝘂𝘁 𝗺𝗼𝗿𝗲 𝗲𝗺𝗽𝗵𝗮𝘀𝗶𝘀 𝗼𝗻 𝘆𝗼𝘂𝗿 𝗰𝗼𝗺𝗺𝗲𝗻𝘁 𝘃𝘀 𝗼𝘁𝗵𝗲𝗿𝘀 𝗯𝘆 𝘄𝗿𝗶𝘁𝗶𝗻𝗴 𝗶𝘁 𝘄𝗶𝘁𝗵 𝗮 𝗯𝗼𝗹𝗱𝗲𝗿 𝗳𝗼𝗻𝘁.

𝔹𝕖 𝕟𝕚𝕔𝕖 (𝕠𝕣 𝕟𝕠𝕥) 𝕒𝕤 𝕒 𝕡𝕝𝕦𝕘𝕚𝕟 𝕗𝕠𝕣 𝕥𝕙𝕖 𝕓𝕣𝕠𝕨𝕤𝕖𝕣

It's not actually a fancy font but different Unicode codepoints. "a" is not "𝖆" as far as Unicode is concerned. The Latin alphabet is mapped into Unicode for different uses.

In the end abuse of these characters will lead to even more variants being created covering the accented letters too. You can't leave out all the languages that have an extended alphabet, can you?


Doesn't work on stock galaxy S7. Just a whole bunch of boxes with crosses through them.

𝓂𝓎 𝓃𝒶𝓂ℯ 𝒥ℯ𝒻𝒻

🅘🅝🅒🅞🅡🅡🅔🅒🅣 Your name is obviously 𝕄𝔸𝕏

𝕷𝖊𝖙’𝖘 𝖘𝖊𝖊 𝖍𝖔𝖜 𝖋𝖆𝖘𝖙 𝖙𝖍𝖎𝖘 𝖎𝖘 𝖆𝖇𝖚𝖘𝖊𝖉 𝖙𝖔 𝖉𝖗𝖆𝖜 𝖆𝖙𝖙𝖊𝖓𝖙𝖎𝖔𝖓 𝖙𝖔 𝕳𝕹 𝖘𝖚𝖇𝖒𝖎𝖘𝖘𝖎𝖔𝖓𝖘 𝖆𝖓𝖉 𝖈𝖔𝖒𝖒𝖊𝖓𝖙𝖘.

I think it will be a good way to attract downvotes moreso than attention.

I'm getting AOL chatroom flashbacks. When do we start using color faders again?

I'll fire up the trivia bot...

Pokemon battlers but for Unicode characters.

Perfect I can get banned from HN for spamming ascii dragons just like the AOL days.

And when the post is not flagged, the mods will change the text to normal letters. (If they take too much time, you can send a fancy font removal request to them hn@ycombinator.com)

ʇı ǝʌol llıʍ ǝldoǝd 'ʎɐʍ ou

Can't downvote submissions. So, abuse away! ;)

But you can flag.

Downvotes are a form of attention.

𝖂𝖊𝖑𝖑, 𝖙𝖍𝖊𝖗𝖊 𝖌𝖔𝖊𝖘 𝖙𝖍𝖊 𝖒𝖔𝖉𝖊𝖗𝖆𝖙𝖔𝖗𝖘 𝖊𝖞𝖊𝖘𝖎𝖌𝖍𝖙 ...

𝕨𝕙𝕠𝕒, 𝕥𝕙𝕚𝕤 𝕚𝕤 𝕔𝕠𝕠𝕝! 𝕋𝕙𝕒𝕟𝕜𝕤

𝙳𝚎𝚖𝚘𝚌𝚛𝚊𝚌𝚢 𝚠𝚊𝚜 𝚑𝚊𝚌𝚔𝚎𝚍

𝚃𝚑𝚎 𝚐𝚘𝚟𝚎𝚛𝚗𝚖𝚎𝚗𝚝... 𝚍𝚘𝚎𝚜 𝚜𝚝𝚞𝚏𝚏

And chaos ensued...


𝖁𝖊𝖗𝖞 𝖎𝖒𝖕𝖗𝖊𝖘𝖘𝖎𝖛𝖊, 𝖇𝖚𝖉𝖉𝖞!

ℍ𝕠𝕝𝕪 𝕔𝕣𝕒𝕡

I crave 𝕥𝕙𝕖 𝕗𝕠𝕣𝕓𝕚𝕕𝕕𝕖𝕟 𝕥𝕦𝕟𝕒

can't stop laughing! X-D

[̲̅b̲̅][̲̅e̲̅][̲̅w̲̅][̲̅a̲̅][̲̅r̲̅][̲̅e̲̅] for horgash is coming

“𝑻𝒉𝒊𝒔 𝒒𝒖𝒐𝒕𝒆 𝒊𝒔 𝒐𝒇𝒕𝒆𝒏 𝒇𝒂𝒍𝒔𝒆𝒍𝒚 𝒂𝒕𝒕𝒓𝒊𝒃𝒖𝒕𝒆𝒅 𝒕𝒐 𝑴𝒂𝒓𝒌 𝑻𝒘𝒂𝒊𝒏”

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact