This document describes or points to requirements for the layout and presentation of text in the Punjabi language, using the Gurmukhi script. The target audience is 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 Mongolian text.

This document describes the basic requirements layout and text support on the Web and in eBooks for the Punjabi language, using the Gurmukhi script. These requirements provide information for Web technologies such as CSS, HTML and digital publications about how to support users of the Gurmukhi script. Currently the document focuses on Gurmukhi as used for the Punjabi language. The information here is developed in conjunction with a document that summarises gaps in support on the Web for Gurmukhi.

The editor's draft of this document is being developed as part of the India Language Enablement program of the W3C Internationalization Interest Group. It will be published by the Internationalization Working Group. The end target for this document is a Working Group Note.

Introduction

Contributors

The initial version of this document was prepared by Richard Ishida.

Thanks to the following people who contributed information that is used in this document (contributors' names listed in in alphabetic order): Akshat Joshi, Kulpreet Chilana, Prashant Verma.

See also the GitHub contributors list for the Mongolian Language Enablement project, and the discussions related to Punjabi.

About this document

The aim of this document is to describe the basic requirements for Gurmukhi 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, and for application developers, about how to support users of the Gurmukhi script. The document currently focuses on texts using the Punjabi language.

Gap analysis

This document is pointed to by a separate document, Gurmukhi Gap Analysis, which describes gaps in support for Gurmukhi on the Web, and prioritises and describes the impact of those gaps on the user.

Wherever an unsupported feature is indentified through the gap analysis process, the requirements for that feature need to be documented. The gap reports will typically point back to this document for more information.

As gaps in support for Gurmukhi are captured, the gap is brought to the attention of the relevant spec developer or browser implementation community. The progress of such work is tracked in the Gap Analysis Pipeline.

This document should contain no reference to a particular technology. For example, it should not say "CSS does/doesn't do such and such", and it should not describe how a technology, such as CSS, should implement the requirements. It is technology agnostic, so that it will be evergreen, and it simply describes how the script works. The gap analysis document is the appropriate place for all kinds of technology-specific information.

Other related resources

To complement any content authored specifically for this document, the sections in the document also point to related, external information, tests, GitHub discussions, etc.

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 Gurmukhi 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 Gurmukhi script. See a list of unresolved questions for Gurmukhi experts. Each section below points to related discussions. See also the repository home page.

Gurmukhi script overview

The Gurmukhi script is an abugida, ie. consonants carry an inherent vowel sound that is overridden using vowel signs.

Gurmukhi text runs left to right in horizontal lines. Words are separated by spaces.

Gurmukhi uses 32 consonant letters. The repertoire can be extended by applying the nukta diacritic to 5 characters, to represent foreign sounds, particularly for words from Persian.

A final h can be indicated using the visarga, but otherwise final consonants are written using ordinary characters

Although consonant clusters are frequent, there are very few conjuncts, mostly just r and h, which are subjoined. This leads to difficulties for automatic transcription.

Consonant gemination is indicated, unusually for an Indian script, by a special diacritic that appears before the letter being lengthened.

The Punjabi orthography has an inherent vowel, and represents other vowels using vowel signs, including a pre-base vowel but no circumgraphs. All vowel signs are combining marks, and are stored after the base character. The inherent vowel is usually not pronounced at the end of a word, however there is often a ghost .

Gurmukhi has independent vowels, one for each vowel sound, including the inherent vowel, and these are used to write all standalone vowel sounds. There are no unique shapes for independent vowels. Instead vowel signs are added to one of three consonants that are used only as vowel carriers, however Unicode provides separate code points for all the combinations and deprecates the use of 2 of the carriers.

Two diacritics are used for nasalisation, tippi and bindi, each used in different phonetic contexts.

Punjabi is a tonal language. Tones are normally indicated by the use of certain consonants, rather than diacritics.

Gurmukhi has its own set of native digits, however modern text tends to use ASCII digits, depending on the context.

Punctuation is mostly western, but dandas are used for sentence and verse final punctuation.

Text direction

Gurmukhi is written horizontally, left to right.

Glyph shaping & positioning

Fonts & font styles

Context-based shaping & positioning

Cursive text

Letterform slopes, weights, & italics

Typographic units

Characters & encoding

Grapheme/word segmentation & selection

Punctuation & inline features

Phrase & section boundaries

Quotations & citations

Emphasis & highlighting

Abbreviation, ellipsis & repetition

Other inline features

Line & paragraph layout

Line breaking & hyphenation

Text alignment & justification

Text spacing

Baselines, line height, etc.

Lists, counters, etc.

Styling initials

Page & book layout

General page layout & progression

tbd

Change log