How to Substitute Fonts in Firefox for Windows Without Extensions

Update on July 25, 2021: Firefox 90 has re-introduced the problem. You can fix the issue by following steps mentioned in this Firefox support thread.

Update on June 19, 2021: Firefox 89.0.1 has FIXED whatever issue was introduced in Firefox 89.0. Below steps are working again!

Update on June 5, 2021: These steps no longer work on Firefox 89, which was recently released with a revamped user interface.

As a Windows user for over a decade, I have grown a bit tired of two fonts/typefaces – Arial (in particular) and Segoe UI (to a lesser extent). Arial is the infamous Helvetica clone that continues to be used on far too many websites. Segoe UI has been the default typeface of Windows since Vista, and is slowly gaining traction as a web font. In fact, if you’re reading this article on a Windows PC, most of the text is likely displayed in Segoe UI.

Windows registry has a folder (also known as “key”) called “FontSubstitutes” where you can define substitutes for specific fonts. For example, Windows does not include Helvetica (possibly due to licensing costs), instead it declares Arial as the substitute for Helvetica. This way, any websites or apps that use Helvetica will automatically switch to Arial when opened in Windows.

Most apps will honor the FontSubstitutes rules only for fonts that are not available in Windows (like Helvetica). If you add a font substitute for Arial, these apps will ignore the rule and continue to display Arial. You’ll have to go an extra step and scrub all filenames of Arial from a separate folder called “Fonts” so that Windows thinks that it’s not available on your PC. There is a bigger scope to mess things up in the Fonts folder than in FontSubstitutes, so this step can be risky.

Thankfully, Firefox is an exception here (as are many apps made with the Qt toolkit). It will accept any rules defined in FontSubstitutes without tinkering with the Fonts folder. If you use Firefox, this is an easy way to banish any unsavory fonts from the browser. Read on for the steps.

Just a heads up that editing the registry can be risky, so be sure to follow instructions exactly, and keep a note of all the changes that you do (in case you need to revert them).

  • Click the Start button on your desktop, type “registry”, and open the Registry Editor from the search results. You will need administrator privileges to open it.
  • Navigate to this folder from the left pane: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
  • Right click anywhere on the blank area and select “New” > “String Value”.
  • Enter the font that you want to replace (like, Arial, Segoe UI, or anything else) as the name of this entry.
  • Double click the entry and enter the font you want to display (as the substitute) in the “Value data” box. Click OK.

Do this for all fonts that you want to replace, restart your PC, and open Firefox to verify. If you want to revert the changes, head back to FontSubstitutes and delete/reset the respective entries.

I have set rules for the below fonts and replaced all of them with Inter, a very nice typeface from Rasmus Andersson.

  • Arial
  • Microsoft Sans Serif and MS Sans Serif (very similar to Arial and sometimes used in its place)
  • Segoe UI
  • Helv and Helvetica (changed from Arial to Inter)

There are many other good fonts available to install on Google Fonts. If you want to use any such third party font as a substitute, download and install it first before adding the registry entries. Fonts are generally available in .ttf or .otf formats.

Premium fonts available from sketchy “free download” sites are illegal and can be a vector for malware. Avoid them and stick to trusted sites like Google Fonts if you want good quality fonts that are free to use.

Note that these steps will work only in Firefox, and not other browsers like Chrome, Edge, Brave, etc (or most apps, for that matter). If you use one of these browsers, the steps may be a bit more involved or may not work at all. I will cover them in a future post if I find a suitable solution. Let me know if you have any questions in the comment section below.

We run automated tests to catch spam, and moderate comments as per our policy. Your comment may take some time to appear below this post.