Design/Projects/Improve mobile reading experience

From MediaWiki.org
Jump to navigation Jump to search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
English

Providing a good reading experience is of high importance to Wikimedia projects. Typography, and specifically font choices, build the base for readability regardless of the device, software, or language of our readers.

Goals and summary[edit]

Our current font choice for sub-headlines and running text on mobile – sans-serif – builds on a generic font stack for historical reasons. This results in using Arial or Helvetica in latin languages on the majority of browsers. Both fonts mildly support the web's universality and have been the primary choice when supporting the widest variety of users like we do.

Driven by emerging mobile operating systems (OS) and strong growth in markets aside of latin script languages, in the last few years system manufacturers have been introducing new default fonts. These "system fonts" aim to provide better readability and better support for more languages.

These typefaces

  • deliver a better native experience for readers,
  • improve cross-platform and
  • improve cross-language readability.

We would like to use these system fonts in our selection fonts for the mobile interface presented by Minerva Neue.

Technical background[edit]

You can read more on the technical backgrounds in the Phabricator task.

Proposed system font stack (see discussion on task):

/**
 * System font stack
 *
 * `-apple-system` – Support: Safari for OS X and iOS ('San Francisco')
 * `BlinkMacSystemFont` – Chrome < 56 for OS X ('San Francisco')
 * `Segoe UI` – Windows Vista & newer
 * `Roboto` – Android
 * `Lato` – Wikimedia Design choice
 * `Helvetica Neue, Helvetica, Arial, sans-serif` – (Generic) Web fallback
 * Note that standard `system-ui` value has resulted in unresolved side-effects in certain OS/language combinations as of now and is therefore not included.
 */
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;

This CSS rule will apply the first font in the stack that is available. This is part of open web standards in most browser rendering engines. For example, Roboto is the Android operating system's current default font. None of the first three fonts are on Android systems by default. So, Roboto is selected for rendering the content.


To put another way the logic of this CSS rule:
User system default > Wikimedia Design choice (Lato) > User operating system desktop only ( 'Helvetica Neue' > Helvetica > Arial) > generic sans-serif

Problem statement[edit]

Currently relying on web browser default font choice, which is, out of historical reasons often Arial and Helvetica as least common denominator with the widest language script support. But both fonts date back more than a dozen years.

Comparison screenshots[edit]

Language OS Device Page Before After
en iOS phone Tao Te Ching Font stack update - before - en - iOS phone Font stack update - after - en - iOS phone
en iOS tablet Tel Aviv Font stack update - before - en - iOS tablet Font stack update - after - en - iOS tablet
en Android phone Gautama Buddha Font stack update - before - en - Android phone (no change)
en iOS tablet Portal Font stack update - before - en - iOS tablet - Wikipedia Portal Font stack update - after - en - iOS tablet - Wikipedia Portal
fa iOS phone آلبرت اینشتین Font stack update - before - fa - iOS phone Font stack update - after - fa - iOS phone
fa iOS tablet آلبرت اینشتین Font stack update - before - fa - iOS tablet Font stack update - after - fa - iOS tablet
fr iOS phone Chaïm Soutine Font stack update - before - fr - iOS phone Font stack update - after - fr - iOS phone
fr iOS tablet Mohandas Karamchand Gandhi Font stack update - before - fr - iOS tablet Font stack update - after - fr - iOS tablet
he iOS phone מוהנדס קרמצ'נד גנדי Font stack update - before - he - iOS phone Font stack update - after - he - iOS phone
he iOS tablet ארכימדס Font stack update - before - he - iOS tablet Font stack update - after - he - iOS tablet
he Android phone גאוטמה_הבודהה Font stack update - before - he - Android phone (no change)
hi iOS phone फ़्रान्सीसी क्रान्ति Font stack update - before - hi - iOS phone Font stack update - after - hi - iOS phone
hi iOS tablet फ़्रान्सीसी क्रान्ति Font stack update - before - hi - iOS tablet Font stack update - after - hi - iOS tablet
ja iOS phone Font stack update - before - ja - iOS phone.png Font stack update - after - ja - iOS phone.png
ja iOS tablet Font stack update - before - ja - iOS tablet.png Font stack update - after - ja - iOS tablet.png
ja Android phone Font stack update - before- ja - Android phone.png (no change)
my iOS phone Font stack update - before - my - iOS phone.png Font stack update - after - my - iOS phone.png
my Android phone Font stack update - before- my - iOS Android.png (no change)
nv iOS phone Font stack update - before - nv - iOS phone.png (no change)
nv Android phone Font stack update - before - nv - Android phone.png (no change)
ru iOS phone Font stack update - before - ru - iOS phone.png Font stack update - after - ru - iOS phone.png
ru iOS tablet Font stack update - before - ru - iOS tablet.png Font stack update - after - ru - iOS tablet.png
ru Android phone Font stack update - before - ru - Android phone.png (no change)
vi iOS phone Font stack update - before - vi - iOS phone.png Font stack update - after - vi - iOS phone.png
vi iOS tablet Font stack update - before - vi - Android phone.png (no change)

Updates[edit]

= 2019-03-01[edit]

- Wikipedia Portals has been changed to new font stack, with it's variety of scripts a good, encapsulated place to start.

Prior art[edit]

There have been a few other web institutions facing similar challenges and taken a similar path: