This document describes or points to requirements for the layout and presentation of text in languages that use the Bengali 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 Bengali text.
This document describes the basic requirements for Bengali 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 users of Bengali script languages. Currently the document focuses on the Bengali script as used for Bengali. The information here is developed in conjunction with a document that summarises gaps in support on the Web for Bengali.
The editor's draft of this document is being developed by the Indian Layout Task Force, part of 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.
This document was created 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, Hai Liang, John Hudson, Vivek Pani.
See also the GitHub contributors list for the Indian Language Enablement project, and the discussions related to the Bengali script.
The aim of this document is to describe the basic requirements for Bengali 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 Bengali script. The document currently focuses on texts using the Bengali language.
The document focuses on typographic layout issues. For a deeper understanding of Bengali using the Bengali script and how it works see Bengali Orthography Notes, which includes topics such as: Phonology, Vowels, Consonants, Encoding choices, and Numbers.
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.
This document should be used alongside a separate document, Bengali Gap Analysis, which describes gaps in support for Bengali on the Web, 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 it for Kashmiri)
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 Bengali 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 Bengali script. See a list of unresolved questions for Bengali experts. Each section below points to related discussions. See also the repository home page.
The Bengali script is an abugida. Consonants carry an inherent vowel which can be modified by appending vowel signs to the consonant.
The orthographic letters of the Bengali script are derived from Sanskrit, and in some cases don't quite fit the needs of modern Bangla (eg. lack of simple vowels for the sounds ɛ and æ, letters for only 2 of many diphthongs, long and short letters where pronunciation no longer distinguishes those sounds, etc.)
Bengali text runs left to right in horizontal lines. Words are separated by spaces. There are no case distinctions.
The consonant letters are supplemented by repertoire extensions by applying the nukta diacritic to characters.
Consonant clusters at any location are normally indicated using a virama (hasant) between consonants. This results in a large number of conjunct forms expressed using stacked consonants, conjoined consonants, and ligated glyphs. Conjuncts often have different pronunciations than might be expected from the letters involved and, in particular, gemination is very common. Occasionally, a visible virama is used. However, clusters are often not marked at all.
As part of a cluster, RA has special forms, for both cluster-initial and post-base positions.
Word-final consonant sounds may be represented by the special letter ৎ, or by dedicated combining marks (anusvara & visarga), but are generally ordinary consonants that are not marked by a virama.
The Bangla orthography is an abugida with 2 inherent vowels, pronounced ɔ and o. Other post-consonant vowels are written using combining marks (vowel signs) and a specialised use of the y consonant letter.
Vowel harmony plays a significant role in the pronunciation of vowel-related code points in Bangla.
There are pre-base and circumgraph vowel signs. In principle, there are no multipart vowels, however in decomposed text the circumgraphs split into 2 parts each.
Standalone vowels are written using independent vowel letters, one for each vowel sound, including the inherent vowel and diphthongs. The final sound of numerous diphthongs is also represented using independent vowels.
Vowels may be nasalised, using the candrabindu diacritic.
Bengali has native digit shapes.
The basic unit for working with Bengali text is the orthographic syllable, ie. one consonant or a sequence of consonants with hasant between, plus optional additional combining characters (such as vowel-signs).
In Bengali an orthographic syllable that forms a conjunct should be treated as an indivisible unit of text for most editing operations. shows a Bengali word with a conjunct at the end, and the expected segmentation.
If, however, a conjunct is not formed and the hasant is visible, the first consonant plus hasant would be treated as separate from the second consonant, and the vowel-sign would appear to the left of the second consonant (see ).
Note that in Bengali an orthographic syllable may be longer than a Unicode grapheme cluster, if it forms a conjunct. shows a Bengali word with a conjunct at the end, and the segmentation that would result from applying Unicode grapheme clusters only.
For Bengali, applications need to provide tailored extensions to correctly segment the text. Such tailoring needs to be able to distinguish between sequences that are displayed as conjuncts, and those where the hasant is visible.
Words are separated by spaces.
। U+0964 DEVANAGARI DANDA, is used for sentence final punctuation.
There are two alternative approaches to the use of spaces with danda:
These same principles apply to ॥ U+0965 DEVANAGARI DOUBLE DANDA.
The double danda should be written using the dedicated Unicode character, and not by combining two single dandas.
The double danda is sometimes used to set apart section or verse numbering, in which the number is placed between pairs of double dandas. To obtain the correct spacing, the character sequence is usually <double danda, space, numeral(s), double danda>.
Underlining is not traditional feature of Bengali text.