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 3 months ago | hide | past | web | favorite | 164 comments



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

https://www.compart.com/en/unicode/U+1D571

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.

https://www.compart.com/en/unicode/U+03B1

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.

http://minaret.info/test/normalize.msp


If you use c#:

"๐•™๐•–๐•๐•๐• ".Normalize(NormalizationForm.FormKC);


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):

https://news.ycombinator.com/item?id=17752680

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.

https://blog.malwarebytes.com/101/2017/10/out-of-character-h...

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 ๏ฌ„ 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.


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


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?


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.


๐’ฏ๐’ฝ๐’ถ๐“ƒ๐“€ ๐’ดโ„ด๐“Š!


Yฬƒฬนฬผฬฐอšฬบฬฅeฬ‰ฬฬฅpฬอชฬ‡อŠอ”ฬญอ™,ฬคฬชฬฏฬ™ฬฃ ฬฐฬฃฬผฬปฬบอˆaฬœอšฬŸll ฬฎฬผฬ™ฬ—oอ‡fฬœ tฬณฬฌอฬคอ–hฬoอ‰อšฬฉฬ—sฬ อ…อ™ฬ—ฬฬฌอ•eฬญอ‡ฬฌฬฑอ”ฬŸ อ–ฬ˜ฬ–อ‰อ…aอ‡ฬฅฬ–อŽฬœอ‡rอ“ฬณeอ”ฬ™อ™ ฬžฬฆอˆuฬชฬคฬณฬŸฬžฬฐsฬผฬฃฬฉฬ—iฬญฬฏnอ”ฬŸฬžอ•ฬนgฬฉอ‡อฬ—อ–ฬป อ•ฬชฬฎฬฉvอ™อ…ฬณอฬžอ“aฬนฬซอ…ฬฐliฬฃdฬฏอšฬ˜ฬฏ ฬคฬ™AฬœฬชSฬ—อŽอ–ฬฅฬ ฬณCอ‡ฬฎIอ“ฬญฬŸฬฒIฬฆฬŸฬฒ/ฬถฬžฬžฬฑอˆฬฐฬฃอ™ฬฅฬนฬชฬฏอšฬอˆฬนฬน ฬ›ฬ•อˆฬฑฬปอฬฌฬŸอ™ฬฐฬ ฬŸฬ–Uฬกออ‰อ™ฬปฬ—อ™ฬญอ‰ฬ–ฬ–nฬจฬกฬ—ฬฉอˆฬญฬปอ•ฬญอ‡อ‡ฬฒอ™ฬ–ฬซฬฏฬœอ…อšอˆiอฬทอ€อฬชอŽฬœฬœฬ อ‡ฬฉอ™ฬ—ฬฏอฬฎฬœอ–ฬฎอ“อ“ฬซcอ อ€ฬบอ‰ฬฆอ“อ™ฬคอ…ฬผฬฐoออ˜อกฬฏฬœฬฅฬฃฬฏอ•ฬปฬฎdอ€อžอฬ–อ‰อˆฬฌออ…ฬฉอšฬฌฬฏฬฐฬณeอกฬกอฬ—ฬปฬซอ•ฬ™ฬ˜ฬฒฬซฬฆอ‰ฬฌฬ–ฬญฬบ อ–ฬบฬณฬŸอ“อ‡cฬ ฬŸอŽฬผฬฒฬณhอ–ฬฃอ•ฬฏaฬœอ”อ‰ฬผฬฎrฬ—aฬฐฬ˜ฬญอšฬ ฬฎฬcฬฑฬฐอ…ฬฆอ•อ…ฬฐtอ‰erฬŸอ‰ฬซอฬฅฬฆsอˆอ–ฬคฬž.

...

ๆ—ฅๆœฌใฎไฝœๅ“ใ‚‚ (๐Ÿ…™๐Ÿ…๐Ÿ…Ÿ๐Ÿ…๐Ÿ…๐Ÿ…”๐Ÿ…ข๐Ÿ…” also works)

ไธญๅ›ฝไนŸๆœ‰ไฝœๅ“ (โ„ญ๐”ฅ๐”ฆ๐”ซ๐”ข๐”ฐ๐”ข too)

etc.

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—

โ•‘ 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:
          ๐“น๐“ป๐“ฒ๐“ท๐“ฝ("๐“‘๐“พ๐”ƒ๐”ƒ")
      else:
          ๐’‘๐’“๐’Š๐’๐’•(๐’)
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?

https://xkcd.com/1726/


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 ๏ฝˆ๏ฝ๏ฝ’๏ฝ‡๏ฝ๏ฝ“๏ฝˆ is coming


โ€œ๐‘ป๐’‰๐’Š๐’” ๐’’๐’–๐’๐’•๐’† ๐’Š๐’” ๐’๐’‡๐’•๐’†๐’ ๐’‡๐’‚๐’๐’”๐’†๐’๐’š ๐’‚๐’•๐’•๐’“๐’Š๐’ƒ๐’–๐’•๐’†๐’… ๐’•๐’ ๐‘ด๐’‚๐’“๐’Œ ๐‘ป๐’˜๐’‚๐’Š๐’โ€




Applications are open for YC Summer 2019

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

Search: