This document points to resources for the layout and presentation of text in languages that use the Cyrillic script. The target audience includes developers of Web standards and technologies, such as HTML, CSS, Mobile Web, Digital Publications, and Unicode, as well as implementers of web browsers, ebook readers, and other applications that need to render Cyrillic text.

This document points to resources for Cyrillic script layout and text support on the Web and in eBooks. These requirements provide information for Web technologies such as CSS, HTML and digital publications about how to support languages written using the Cyrillic script. The information here is developed in conjunction with a document that summarises gaps where the Web fails to adequately support the Cyrillic script.

The editor's draft of this document is being developed in the GitHub repository European Language Enablement (eurlreq), with contributors from the W3C Internationalization Interest Group. It is published by the Internationalization Working Group. The end target for this document is a Working Group Note.

To make it easier to track comments, please raise separate issues or emails for each comment, and point to the section you are commenting on using a URL.

Some links on this page point to repositories or pages to which information will be added over time. Initially, the link may produce no results, but as issues, tests, etc. are created they will show up.

Links that have a gray color led to no content the last time this document was updated. They are still live, however, since relevant content could be added at any time. When the document is updated, links that now point to results will have their live colour restored.

Introduction

Contributors

This document was created by Richard Ishida.

See also the GitHub contributors list for the European Language Enablement project, and the discussions related to the Cyrillic script.

About this document

This document points to resources for Cyrillic script layout and text support on the Web and in eBooks. These resources provide information for developers of Web technologies such as CSS, HTML and digital publications, and for application developers, about how to support languages written using the Cyrillic script. They include requirements, tests, GitHub discussions, type samples, and more,

The document focuses on typographic layout issues. For a deeper understanding of the Cyrillic script and how it works see Ukrainian Orthography Notes, which includes topics such as: Phonology, Vowels, Consonants, and Numbers.

Gap analysis

This document should be used alongside a separate document, Cyrillic Gap Analysis, which describes gaps in language support for users of the Cyrillic script, and prioritises and describes the impact of those gaps on the user.

Gap reports are brought to the attention of spec and browser implementers, and are tracked via the Gap Analysis Pipeline. (Filter for Cyrillic script items)

Related resources

The document Language enablement index points to this document and others, and provides a central location for developers and implementers to find information related to various scripts.

The W3C also has a repository with discussion threads related to the Cyrillic script, including requests from developers to the user community for information about how scripts/languages work, and a notification system that tracks issues in W3C working groups related to the Cyrillic script. See a list of unresolved questions for Cyrillic experts. Each section below points to related discussions. See also the repository home page.

Cyrillic Script Overview

The Cyrillic script is an alphabet, ie. a writing system in which both consonants and vowels are indicated. The following overview uses Ukrainian and Russian as example orthographies.

Of the 441 characters in the Unicode Cyrillic blocks, 177 are historic (33%) and 2 are for Lithuanian dialectology. The remaining 262 are just letters – no punctuation, digits, or combining characters. These are all bicameral, which brings the number of distinct modern letters to 131. Although modern Cyrillic text tends to use precomposed forms, rather than combining diacritics separately with base letters, many extended characters are formed by slightly tweaking a set of basic shapes.

Cyrillic text runs left-to-right in horizontal lines. Words are separated by spaces. The visual forms of letters don't usually interact.

The script is bicameral. The shapes of the upper and lowercase forms are typically the same. There can be a significant difference, however, between regular and cursive/italic shapes for the same character.

Modern Ukrainian has 32 basic consonant letters (64 if you include both upper- and lowercase), plus the hard sign and soft sign. Modern Russian has 23 basic consonant letters, including the hard sign and soft sign, and йU+0439 SMALL LETTER SHORT I, which is a semivowel used to write Russian diphthongs. In the absence of an indicator vowel, the soft sign can be used to indicate palatalisation of a consonant.

Ukrainian is written using 10 vowel letters, 4 of which usually indicate palatalisation of the previous consonant. Palatalisation can otherwise be applied or removed using the hard and soft signs. In Russian vowels are written using 10 dedicated vowel letters, half of which usually indicate palatalisation of the previous consonant. They may, however, sometimes be used after one of the few consonants that is always hard, and еU+0435 SMALL LETTER IE is commonly used after non-palatalised consonants in loan words..

There are no special mechanisms to represent standalone vowels. Combining marks are normally not used, and only occur in decomposed text.

Numbers use ASCII digits.

All topics

Text direction

Glyph shaping & positioning

Fonts & font styles

Context-based shaping & positioning

Letterform slopes, weights, & italics

Case & other character transforms

Typographic units

Characters & encoding

Grapheme/word segmentation & selection

Punctuation & inline features

Phrase & section boundaries

Quotations & citations

Emphasis & highlighting

Abbreviation, ellipsis & repetition

Inline notes & annotations

Text decoration & other inline features

Data formats & numbers

Line & paragraph layout

Line breaking & hyphenation

Text alignment & justification

Text spacing

Baselines, line height, etc.

Lists, counters, etc.

Styling initials

Page & book layout

tbd