This is user documentation for web fonts functionality. Technical documentation for the WebFonts extension is also available.

Many scripts for languages do not have proper fonts easily available. This may be because the operating systems does not have the fonts installed and the user does not know how to install them, or because the user is reading the wiki from a shared computer without the needed fonts installed. Because of all these reasons, providing the content in certain languages is facing issues. Web fonts solves this by embedding the fonts in wiki pages. The fonts are downloaded automatically so that the reading experience is complete and the reader doesn't see gibberish, questions marks or squares instead of letters.

When the extension is installed and enabled, along with the login, preferences link in the wiki page, a menu will appear to select a font for the page. By default, the first font in that menu will be applied to the wiki. A user can change the font and it will be remembered across the pages. Optionally, the user can disable the font embedding too; this choice will also remembered across pages, even for next visits, for 30 days. The menu will not appear if there is no text in the page in a language WebFonts extension supports.

If the font is available in user's local system, font will not be downloaded from the MediaWiki server. It will be taken from the user's computer. Otherwise, the font will be downloaded from the server the first time it is needed. Next time onwards, the font will be taken from the local cache.

To disable WebFonts when you are not logged in: open the WebFonts menu and choose the bottom option "⧼webfonts-reset⧽" (see screenshot). This disables the functionality using a cookie for 30 days. Cached font files may remain rendered for "font-family" styles.

There are two ways in wiki text to trigger web fonts functionality. Text can be tagged with a language code and with a specific font style. When language tagging is used, the default web font for that language will be used. Language tagging is necessary when the language is different from the language of a page. Language tagging is encouraged, because it will also lead to improved search engine results, spell-checking, speech synthesis, speech recognition, etc.

To mark a paragraph of text as Hindi and load the default web font for it:

Source text

Result

<div lang="hi">नमूना पाठ</div>

नमूना पाठ

To mark a paragraph of text as Hindi and load the non-standard web font "Samyak Devanagari" for it:

Even if a browser supports web fonts, there is no guarantee that it can render the text correctly. This is often a problem for example in Indic scripts, where the glyphs are not just placed one after another without any changes, like in Latin and Cyrillic scripts. The correct rendering and rendering quality also depend on the browser and the operating system that is used. Modern web browsers and operating systems like recent Linux desktop distributions, Mac OS X and Windows 7 perform pretty well, but older web browsers (like Internet Explorer 6) and operating systems like Windows XP may provide a sub-optimal user experience.

Because of the flash of unstyled text (FOUT) that happens on first load, this technology gets unpractical if the font files grow very big. This currently prevents adding fonts for Chinese for example. The WebFonts extension does not support partial font downloading, where only those glyphs that are used in the page would be loaded.

Web fonts are currently not supported for Internet Explorer 6 on any Windows version or Internet Explorer 8 on Windows XP because of known issues.

Only free fonts can be used for web fonts. The font license must allow redistributing the font and converting it to another formats. SIL Open Font License is preferred. Bugs or bad rendering caused by missing hinting information in the font may prevent using a font as a web font. If you are aware of a suitable font, please request it to be added in the the bug tracker.