CARVIEW |
This document points to resources for the layout and presentation of text in languages that use the Thai 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 Thai text.
This document points to resources for Thai 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 Thai script. The information here is developed in conjunction with a document that summarises gaps where the Web fails to adequately support the Thai script.
The editor's draft of this document is being developed in the GitHub repository Southeast Asian (sealreq), 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.
The following people contributed information that was used in preparing this document (in alphabetic order): Ben Mitchell, Danh Hong, Marc Durdin, and Martin Hosken as members of the W3C's Southeast Asia Language Enablement community.
See also the GitHub contributors list for the Southeast Asian Language Enablement project, and the discussions related to the Thai script.
About this document
This document points to resources for Thai 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 Thai script. They include requirements, tests, GitHub discussions, type samples, and more,
The document focuses on typographic layout issues. For a deeper understanding of the Thai script and how it works see Southeast Asian Orthography Notes, which includes topics such as: Phonology, Vowels, Consonants, Encoding choices, and Numbers.
Gap analysis
This document should be used alongside a separate document, Thai Gap Analysis, which describes gaps in language support for users of the Thai 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 Thai 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 Thai 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 Thai script. See a list of unresolved questions for Thai experts. Each section below points to related discussions. See also the repository home page.
Thai Script Overview
The Thai orthography is an abugida. Consonant letters have an inherent vowel sound. Vowel signs are attached to the consonant to produce a different vowel.
Thai text runs left to right in horizontal lines.
Spaces separate phrases, rather than words.
Each onset consonant is associated with a high, mid, or low class related to tone. Tone is indicated by a combination of the consonant class, the syllable type (live/dead), plus any tone mark.
No conjuncts are used for consonant clusters.
Syllable-initial clusters and syllable-final consonant sounds are all written with ordinary consonant letters. It can therefore be difficult to algorithmically detect syllable boundaries.
An inherent vowel is pronounced o inside a closed syllable, a in an open syllable, and ɔː before a final -r. Non-inherent vowels are represented using vowel signs. Characters used to represent vowels and dipthongs include combining marks, vowel letters, and consonants. There are pre-base vowel glyphs, but Thai uses visual placement: only the vowel sign components that appear above or below the consonant are combining marks; the others are ordinary, spacing letters that are typed in the order seen.
There are no independent vowels, and standalone vowel sounds are written using vowel signs applied to อ U+0E2D THAI CHARACTER O ANG.
Thai has a large number of multipart vowels (including diphthongs) made from dedicated vowel characters and from consonants. Composite vowels can involve up to 4 glyphs (plus a tone mark), and glyphs can surround the base consonant(s) on up to 3 sides, eg. เกี๊ยะ kía̯ʔ geta (footwear)
Thai has vocalics.
Thai has native digits, and they are commonly used.
All topics
- GitHub discussions
- Type samples
- Tests
- Gap analysis
Text direction
Thai is written horizontally, left to right.
Glyph shaping & positioning
Fonts & font styles
- Requirements
-
- Thai Orthography Notes: Font styles
- Generic font families (loopless, heavy)
- List of system fonts
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Context-based shaping & positioning
- Requirements
-
- Thai Orthography Notes: Context-based shaping & positioning
- GitHub discussions
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Cursive text
Not applicable.
Letterform slopes, weights, & italics
- Requirements
-
- Thai Orthography Notes: Letterform slopes, weights, & italics
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Character transforms
Not applicable.
Typographic units
Characters & encoding
- Requirements
-
- Thai Orthography Notes: Vowels • Consonants
- Character usage
- GitHub discussions
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Grapheme/word segmentation & selection
- Requirements
-
- Thai Orthography Notes: Word boundaries • Graphemes
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Punctuation & inline features
Phrase & section boundaries
- Requirements
-
- Thai Orthography Notes: Phrase & section boundaries
- GitHub discussions
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Quotations & citations
- Requirements
-
- Thai Orthography Notes: Quotations & citations
- Wikipedia: Quotation mark
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Emphasis & highlighting
- Requirements
-
- tbd
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Abbreviation, ellipsis & repetition
- Requirements
-
- Thai Orthography Notes: Abbreviation, ellipsis & repetition
- GitHub discussions
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Inline notes & annotations
- Requirements
-
- tbd
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Other text decoration & inline features
- Requirements
-
- tbd
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Data formats & numbers
- Requirements
-
- GitHub discussions
- Type samples
- Tests
- Gap analysis
- Specification links
-
Line & paragraph layout
Line breaking & hyphenation
- Requirements
-
- Thai Orthography Notes: Line breaking & hyphenation
- Approaches to line-breaking
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Text alignment & justification
- Requirements
- GitHub discussions
- Type samples
- Tests
- Gap analysis
- Specification links
-
Text spacing
- Requirements
-
- tbd
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Baselines, line height, etc.
- Requirements
-
- Thai Orthography Notes: Baselines, line height, etc.
- GitHub discussions
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Lists, counters, etc.
- Requirements
-
- Thai Orthography Notes: Counters, lists, etc
- Ready-made Counter Styles: Thai
- GitHub discussions
- Tests
- Gap analysis
- Specification links
-
Styling initials
- Requirements
-
- Thai Orthography Notes: Styling initials
- GitHub discussions
- Type samples
- Tests
- Gap analysis
- Specification links
-
Page & book layout
General page layout & progression
- Requirements
-
- GitHub discussions
- Type samples
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Grids & tables
- Requirements
-
- GitHub discussions
- Type samples
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Footnotes, endnotes, etc
- Requirements
-
- GitHub discussions
- Type samples
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Page headers, footers, etc
- Requirements
-
- GitHub discussions
- Type samples
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-
Forms & user interaction
- Requirements
-
- GitHub discussions
- Type samples
- Tests
-
- Exploratory/interactive test results (tbc)
- Exploratory/interactive test repo (tbc)
- Gap analysis
- Specification links
-