The CSS1 [CSS1] specification was the first one to offer a replacement for the HTML’s [HTML32] type attribute on the ol element (see section on ordered lists) by introducing the list-style-type property. The CSS2 [CSS2] specification expanded the list of the possible list-style-type values by adding a number of property values such as the values for Hebrew, Armenian, Japanese, and other numbering systems. At the same time both of the above-mentioned recommendations provided neither an exact calculation mechanism for each numbering system, nor mechanisms for resolving the wrapping of some systems at the end of the alphabet. The Working Draft of the CSS3 Module: Lists [CSS3-Lists] offers a broader list of list-style-type values but the issues raised by the previous Recommendations remain open. This note describes some possible additions and corrections to the CSS3 Module: Lists [CSS3-Lists] which are likely to help UA implementers and document authors to more precisely control the presentation of lists on the Web.
list-style-end Propertylist-style-type Valueslist-style-type Property
This note examines some of the issues of the CSS3 Module: Lists [CSS3-Lists] which remain (at least until now) unsolved. The issues and the proposals addressed by this note are as follows:
list-style-type armenian value and the corresponding correction.The authors recommend the addition of list style types to support the literal traditions of languages employing the Cyrillic, Ethiopic, Coptic, and Armenian scripts. As numerous languages utilize these scripts as systems of writing it has become evident to the authors that list style type identifiers must be localized at the level of language and not script. This is in keeping with the reality of script as a mechanism for recording spoken language and that script usage is adapted and developed as per the needs of the language recorded.
The overwhelming majority of the existing Cyrillic alphabets originates from the Russian type alphabet introduced by Peter the First in 1708 (using Old Slavonic as a foundation). The remaining Cyrillic alphabets originate from the Old Slavonic alphabet itself implemented by St. Cyrill and St. Methodius which in its turn originates from Greek vestry books and some other alphabets. The alphabets of the nations located on the territories of the former USSR are mainly based on the modern Russian alphabet.
This is the unexhaustive list of Cyrillic alphabets though the authors consider it to be quite comprehensive. There probably are other alphabets especially on the territory of the former USSR but their inclusion into this table at this point seems to be inappropriate as they’ve been used by an extremely small number of speakers.
Note on this table: the first column gives the names of the languages (either the actual translated name or the guess of the author — for rare languages), the second lists the ISO 639 codes (if exists), the third gathers the notes on previously used scripts (this is to know if there is a secondary alphabetic need), the fourth indicates whether the alphabet of the corresponding language is based on the modern Russian alphabet (with the necessary modifications) or not, the fifth reports the number of native speakers (mostly approximate numbers but from normative sources, this column could be used to select the alphabets for the inclusion), the sixth specifies the probability of reverting to the previously used script (this is the author’s guess based on the media reports and might not reflect the immediate situation) and the last column contains the related notes.
All the following languages use Cyrillic script unless explicitly marked as using another.
| Language | ISO639 | Previously used scripts | Russian based (yes/no) | Native speakers | Probability of reverting to previous script | Notes |
|---|---|---|---|---|---|---|
| Abazin | none | unknown | Y | 30,000 | N/A | – |
| Abkhazian | none | unknown | Y | 115,000 | N/A | – |
| Adyghe | none | unknown | Y | 120,000 | N/A | Latin script already? |
| Agul | none | N/A | Y | 15,000 | N/A | Russian based alphabet is being implemented |
| Altaian | none | unknown | Y | 59,000 | N/A | – |
| Alyutor | none | unknown | unknown | 2,000 | N/A | Script? |
| Avar | none | unknown | Y | 600,000+ | N/A | – |
| Azerbaijani | az | before 1929: Arabic based script, 1929–1939: Latin based Azerbaijani alphabet, 1939–1991: Russian based, since 1991: Latin based Azerbaijani alphabet restored | N | 7,570,000+ | 0% | Currently uses Latin script |
| Bashkir | ba | unknown | Y | 864,000 | N/A | Latin script already? |
| Belorussian | be | Russian type | N | 10,000,000 | N/A | – |
| Bezhta (Bezhitin, Kapuchin) | none | unknown | unknown | unknown | N/A | – |
| Bezhitin | see Bezhta | |||||
| Bulgarian | bg | unknown | N | 8,450,000 | N/A | Slavonic based alphabet |
| Buryat | ? | unknown | Y | 520,000 | N/A | – |
| Chechen | ce | unknown | Y | 957,000 | N/A | Under the terrorist regime there were plans to introduce Latin based alphabet (fortunately unsuccessful) |
| Chukchi (Luoravetlan) | none | unknown | Y | 15,100 | N/A | – |
| Church Slavonic | cu | Old Slavonic’s Cyrillic alphabet | N/A | N/A | N/A | Used in churches in multiple countries. Varies across countries. |
| Chuvash | cv | unknown | Y | 1,842,000 | N/A | – |
| Crimean Tartar | ? | Ancient Arabic based script | Y | 272,000 | unknown | – |
| Croatian | see Serbo-Croat | |||||
| Cyrillic alphabet | see Old Slavonic | |||||
| Dargwa | none | unknown | Y | 365,000 | N/A | – |
| Dungan | none | unknown | Y | 70,000 | N/A | – |
| Enetz | none | unknown | N/A | 200 | N/A | No written language, mentioned for completeness (Taimyr autonomous okrug) |
| Erzya-Mordvinian | none | unknown | Y | unknown | N/A | – |
| Eskimo | ? | unknown | Y | 38,000 (USA), 28000 (Canada), 47000 (Greenland), 1700 (Russia) | N/A | Russian based script in Russia, Latin script in the USA, Canada, and Greenland |
| Even (Lamut) | none | unknown | Y | 17,000 | N/A | – |
| Evenki (Tungus) | none | unknown | Y | 64,900 | N/A | – |
| Gagauz | none | unknown | Y | 220,000 | N/A | Latin script in Romania? |
| Glagolitic alphabet | see Old Slavonic | |||||
| Godoberi | none | unknown | unknown | unknown | N/A | – |
| Ingush | none | unknown | Y | 237,000 | N/A | – |
| Itelmen | none | unknown | Y | 2,500 | N/A | – |
| Izhor | none | none | N/A | 756 | N/A | No written language, mentioned here due to the residence in the former USSR (Leningrad oblast and Estonia) |
| Kabardian-Circassian | none | unknown | Y | 386,000 | N/A | Latin script already? |
| Kalmyk (Kalmuck) | none | Ancient Mongolian based script, currently Russian based alphabet | Y | 166,000 | N/A | – |
| Kalmuck | see Kalmyk | |||||
| Kapuchin | see Bezhta | |||||
| Karachay-balkar | none | unknown | Y | 150,000 | N/A | Latin script already? |
| Kara-Kalpak | none | unknown | Y | 400,000 | N/A | – |
| Karelian | none | Russian based? | N | 131,000 | unknown | Latin based alphabet since 1992. Previously used alphabet — possibly Russian |
| Kazakh | kk | unknown | Y | 9,420,000 | N/A | – |
| Kerek | none | none | N/A | unknown | N/A | Mentioned for completeness, no written language |
| Ket | none | none | Y | 1,000 | N/A | The alphabet was developed in 1970–1980s |
| Khakas | none | unknown | Y | 79,000 | N/A | – |
| Khanty | none | unknown | Y | 22,300 | N/A | – |
| Khinalug | none | unknown | unknown | unknown | N/A | – |
| Khvarshi | none | unknown | unknown | unknown | N/A | – |
| Kirghiz | ky | unknown | Y | 2,661,000 | N/A | – |
| Komi Permian | kv | unknown | Y | 147,000 | N/A | – |
| Komi Zyryan | kv | unknown | Y | 336,000 | N/A | – |
| Koryak | none | unknown | Y | 9,000 | N/A | – |
| Kumyk | none | unknown | Y | 282,000 | N/A | – |
| Kurdish | ku | unknown | Y | 18,000,000 | N/A | Russian based alphabet on the former USSR territory, Arabic based script in Iraq |
| Lak | none | unknown | Y | unknown | N/A | – |
| Lamut | see Even | |||||
| Lappish | see Sami | |||||
| Lezgian (Lezgin) | none | unknown | Y | unknown | N/A | – |
| Luoravetlan | see Chukchi | |||||
| Macedonian | mk | Cyrillic alphabet | N | 1,770,000 | N/A | – |
| Mansi | none | unknown | Y | 8,300 | N/A | – |
| Mari, lugovo-vostochniy (meadow-east) | none | unknown | y | 644,000 | N/A | – |
| Mari, gorno-mariyskiy (hill-mari) | ||||||
| Moksha | none | unknown | Y | unknown | N/A | – |
| Moldavian | mo | Before XIX century: Cyrillic, since XIX century: Russian type, 1932–1939: Latin script, since 1939: Russian alphabet | Y | 3,350,000 | worth mentioning | In 1989 a government regulation ordered to revert to Latin script, but since they’re fighting with Romanians (who use Latin script) they decided to ignore that act of law |
| Mongol | ? | Since XII–XIII centuries: adopted Uigur | Y | 1,640,000 (Mongolia), 5,240,000 (China) | unknown | Russian based alphabet since 1945 |
| Nanai | none | unknown | Y | 17,000 | N/A | – |
| Nenets (Urako-Samoed) | none | unknown | Y | 34,500 | N/A | – |
| Ngasan | none | unknown | unknown | 1,300 | N/A | Mentioned here for completeness, script? |
| Nivkh | none | unknown | Y | 4,600 | N/A | – |
| Nogai | none | unknown | Y | 75,000 | N/A | – |
| Old Slavonic (Cyrillic and Glagolitic) | ? | Cyrill’s and Methodius’ translations of Greek vestry books | N/A | N/A | N/A | Utilizes two alphabets: Cyrillic and Glagolitic, both contain letters used as numbers and special combining characters to use with big numbers. Dates from IX–XI centuries. |
| Oroche | none | none | N/A | 915 | N/A | No written language, mentioned for completeness (Primorskiy and Khabarovskiy Krais) |
| Ossetian | os | unknown | Y | 598,000 | N/A | – |
| Russian | ru | Since IX–XI centuries: Old Slavonic, since 1708: Russian type, since 1918 present alphabet | N/A | 250,000,000 | N/A | In Russia it is common not to use certain letters in list numbering |
| Russian type | ? | Since IX–XI centuries: Old Slavonic | N/A | N/A | N/A | Derived from Old Slavonic, reformed by Peter the First |
| Rutul | none | unknown | unknown | 19,500 | N/A | – |
| Sami (Lappish) | ? | unknown | Y | 30,000 (Norway), 15,000 (Sweden), 5,000 (Finland), 2,000 (Russia) | N/A | Russian alphabet in Russian, Latin script in other countries |
| Selkup | none | unknown | Y | 3,600 | N/A | The alphabet, the script are unstable (has not been used since mid 1950s) |
| Serbo-Croatian (Serbian, Croatian) | sb | unknown | N | 10,160,000 | N/A | Based on two alphabets: Russian type and Latin |
| Shor | none | unknown | Y | 16,000 | N/A | – |
| Tabassaran | none | unknown | Y | 98,000 | N/A | – |
| Tajik | none | Ancient Arabic based script | Y | 8,280,000 | N/A | – |
| Tartar | tt | Ancient Arabic based script | Y | 6,710,000 | 49% | There are plans to introduce Latin script along with official Russian language |
| Tati | none | unknown | Y | unknown | N/A | – |
| Tsakhur | none | unknown | unknown | 13,000 | N/A | – |
| Tsez | none | unknown | unknown | unknown | N/A | – |
| Tungus | see Evenki | |||||
| Tuvin | none | unknown | Y | 207,000 | N/A | – |
| Udi | none | unknown | unknown | 8,000 | N/A | – |
| Udmurt | none | unknown | Y | 714,800 | N/A | – |
| Ukrainian | uk | unknown | N | 46,000,000 | N/A | Russian type based alphabet |
| Urako-Samoed | see Nenets | |||||
| Uzbek | none | Ancient Arabic based script | Y | 18,500,000 | N/A | – |
| Vepps(e) | none | was not widespread | unknown | 13,000 | N/A | New alphabet is being implemented |
| Vods | none | unknown | unknown | unknown | N/A | – |
| Yakut | none | unknown | Y | 382,000 | N/A | – |
| Yukagir | none | unknown | unknown | 1,100 | N/A | Here for completeness, script? |
Ethiopic writing traditions make use of alphabetic and numeric list styles. There are no fewer than 65 million people speaking as many as 80 languages that may employ Ethiopic script. Orthography practices have evolved to different degrees with each language and each recognizes “Ge’ez” script as the underlying classical form (as “Latin” script underlies western script in Europe). Amharic and Tigriñña are identified as having the largest number of speakers as well as the largest corpus of printed and electronically published materials and uniquely identifiable writing conventions. In addition to the classic Ethiopic list style, specific list styles types to accommodate the practices of these major languages are recommended.
Many additional languages use or have used Ethiopic script. However, it is not known by the authors if the practice of alphabetic lists is employed or in what form. A limited survey of the user communities of a few of the languages did indeed find a strong desire for list style support under the direct syllabary use by the user's language. Further investigation should be undertaken here.
The following table presents the languages of Eritrea and Ethiopia as tracked by the SIL Ethnologue and indicates script use where known. Script use information has also been provided by the SIL as well as government sources of Eritrea and Ethiopia. Mother tongue populations are also drawn from the Ethnologue which in turn draws largely from 1997 and 1998 census data of Eritrea and Ethiopia respectively. Both Latin and Ethiopic script will be found in cases where Latin script has come into official use over Ethiopic script in the relatively recent past.
| Language | ISO-639 | Uses Ethiopic Presently/Previously |
Native Speakers | Nation(s) | Notes |
|---|---|---|---|---|---|
| Aari | none | Y / Y | 158,857 | ET | Small corpus. |
| Afar (Dankali) |
aa | N / Y | 1,279,367 | DJ, ER, ET, SO |
An additional 300,000+ speakers are outside of Eritrea and Ethiopia. Small Ethiopic corpus (100-1,000 documents). |
| Agaw (Kemant) |
none | Y / Y | 1,650 | ET | ISO-10646/Unicode does not fully support Agaw, however, alphabetic lists may be formed. |
| Agaw (Awngi) |
none | Y / Y | 356,980 | ET | ISO-10646/Unicode does not fully support Agaw, however, alphabetic lists may be formed. |
| Agaw (Xamtanga) |
none | Y / Y | 143,369 | ET | ISO-10646/Unicode does not fully support Agaw, however, alphabetic lists may be formed. |
| Alaba | none | unknown | 126,247 | ET | |
| Amharic | am | Y / Y | 17,413,000 | ET | Very large corpus. |
| Anfillo | none | unknown | 500 | ET | |
| Anuak | none | L / unknown | 45,646 | ET, SU | An additional 52,000 speakers are in the Sudan. |
| Arbore | none | unknown | 4,441 | ET | |
| Argobba | none | Y / Y | 10,860 | ET | Small corpus. |
| Baiso | none | unknown | 1,010 | ET | |
| Bambassi | none | unknown | 5,000 | ET | |
| Bare | none | unknown | N/A | ET | Nearly extinct or extinct. |
| Basketto | none | unknown | 57,805 | ET | |
| Bedawi (Beja) |
none | N / unknown | 120,000 | EG, ER, SU |
An additional 1,028,000 speakers are outside of Eritrea. |
| Bench | none | Y / Y | 173,805 | ET | ISO-10646/Unicode does not fully support Bench, alphabetic lists can not be formed. Small corpus. |
| Berta | none | unknown | 124,799 | ET, SU | An additional 22,000 speakers are in the Sudan. |
| Bilen | none | Y / Y | 70,000 | ER | ISO-10646/Unicode does not fully support Bilen, however, alphabetic lists may be formed. Medium corpus (1,000 - 10,000 documents). |
| Birale | none | unknown | 20 | ET | Nearly extinct. |
| Boro | none | unknown | 19,878 | ET | |
| Burji | none | unknown | 35,731 | ET, KE | An additional 7,000 speakers are in Kenya. |
| Bussa | none | unknown | 6,624 | ET | |
| Chara | none | unknown | 6,932 | ET | |
| Daasanech | none | unknown | 32,064 | ET, KE | An additional 2,500 speakers are in Kenya. |
| Dime | none | unknown | 6,501 | ET | |
| Dirasha | none | unknown | 50,328 | ET | |
| Dizi | none | unknown / Y | 21,075 | ET | Small corpus. |
| Dorze | none | unknown | 20,782 | ET | |
| Gafat | none | unknown | 0 | ET | Bible portions translated in 1945, the script used is unknown. |
| Gamo-Goffa-Dawro | none | N / unknown | 1,236,637 | ET | |
| Ganza | none | unknown | N/A | ET | Nearly extinct. |
| Gawwada | none | unknown | 32,698 | ET | |
| Ge'ez | none | Y / Y | 0 | ER, ET | An extinct language analagous to Latin. Is a second language to over 50,000, a corpus of over 10,000 documents exists. |
| Gedeo | none | N / Y | 639,082 | ET | Small corpus. |
| Gumuz | none | Y / Y | 120,424 | ET, SU | An additional 40,000 speakers are in the Sudan. Small corpus. |
| Gurage (Chaha) |
none | Y / Y | 798,202 | ET | ISO-10646/Unicode does not fully support Chaha, alphabetic lists can not be formed. Medium corpus. |
| Gurage (Silte) | none | Y / Y | 827,764 | ET | Medium corpus. |
| Gurage (Sodo) | none | Y / Y | 254,682 | ET | Medium corpus. |
| Hadiyya | none | N / Y | 923,958 | ET | Small corpus. |
| Hammer-Banna | none | Y / unknown | 42,838 | ET | |
| Harari (Adari) |
none | Y / Y | 21,283 | ET | Small corpus. |
| Hozo | none | unknown | 3,000 | ET | |
| Kachama | none | unknown | 4,072 | ET | |
| Kacipo-Balesi | none | unknown | 2-3,000 | ET, SU | An additional 5,000 speakers are in the Sudan. |
| Kaficho (Kaffa) | none | N / Y | 569,626 | ET | Small Ethiopic corpus. |
| Kambaata | none | N / Y | 606,241 | ET | Small Ethiopic corpus. |
| Karo | none | unknown | 200 | ET | |
| Kebena | none | Y / Y | 606,241 | ET | Small corpus. |
| Komo | none | Y / N | 1,500 | ET, SU | An additional 10,000 speakers are in the Sudan. Small Ethiopic corpus. |
| Komso | none | Y / unknown | 149,508 | ET | Small corpus. |
| Koorete | none | Y / N | 103,879 | ET | Small Ethiopic corpus. |
| Kunama (Baza) | none | N / Y | 142,000 | ER | Small Ethiopic corpus. |
| Kunfal | none | unknown | N/A | ET | |
| Kwama | none | unknown | 15,000 | ET | |
| Kwegu | none | unknown | 103 | ET | |
| Libido | none | unknown | 36,612 | ET | |
| Majang | none | Y / unknown | 15,341 | ET | Small corpus. |
| Male | none | Y / unknown | 53,779 | ET | Small corpus. |
| Me'en | none | Y / unknown | 56,585 | ET | Small corpus. |
| Melo | none | unknown | 20,151 | ET | |
| Mesmes | none | unknown | N/A | ET | Extinct or nearly extinct? |
| Murle | none | unknown | 200 | ET, SU | Additional population of 60,000 in Sudan. |
| Mursi | none | unknown | 3,278 | ET | |
| Nara | none | N / unknown | 63,000 | ER | Also spoken in Sudan? |
| Nayi | none | unknown | 3,656 | ET | |
| Nuer | none | unknown | 64,907 | ET, SU | An additional 740,000 speakers are in the Sudan. |
| Nyangatom | none | unknown | 14,177 | ET | |
| Opuuo | none | unknown | 301 | ET, SU | Population figure is for both nations. |
| Oromo (Borana-Arusi-Guji) |
om | N / Y | 3,634,000 | ET, KE, SO |
An additional 152,000 speakers are outside of Ethiopia. Latin is used officially in government, courts and schools, Ethiopic use continues, medium corpus. |
| Oromo (Qotu) |
om | N / Y | 4,526,000 | ET | Latin is used officially in government, courts and schools, Ethiopic use continues. Medium corpus. |
| Oromo (Western-Central) |
om | N / Y | 8,920,000 | ET | Latin is used officially in government, courts and schools, Ethiopic use continues. Medium corpus. |
| Oyda | none | unknown | 16,597 | ET | |
| Saho | none | N / Y | 166,750 | ER, ET | Small corpus. |
| Seze | none | unknown | 3,000 | ET | |
| Shabo | none | unknown | 400-1,000 | ET | |
| Shakacho | none | N / unknown | 54,894 | ET | |
| Sheko | none | unknown | 23,785 | ET | |
| Sidamo | none | N / Y | 1,876,329 | ET | ISO-10646/Unicode does not fully support Sidamo, alphabetic lists can not be formed. Latin is used in government and schools, Ethiopic use continues. Small corpus. |
| Somali | so | N / Y | 3,187,053 | DJ, ET, KE, SO |
An additional 6,500,000+ speakers are outside of Ethiopia. Small Ethiopic corpus. |
| Suri | none | Y / Y | 19,622 | ET, SU | An additional 1,000 speakers are in the Sudan. Small Ethiopic corpus. |
| Tigre (Bedo) | none | Y / Y | 800,000 | ER, SU | Population figure is for Eritrea only. Small corpus. |
| Tigrinya | ti | Y / Y | 5,135,000 | ER, ET | Very large corpus. |
| Tsamai | none | unknown | 8,621 | ET | |
| Uduk | none | N / unknown | 20,000 | ET, SU | Population figure is for both countries. |
| Weyto | none | unknown | 0 | ET | Extinct. |
| Wolaytta | none | N / Y | 1,231,673 | ET | Small Ethiopic corpus. |
| Yemsa | none | unknown / Y | 81,613 | ET | Present Ethiopic use is assumed. Small corpus. |
| Zay | none | unknown | 4,880 | ET | |
| Zayse-Zergulla | none | unknown | 17,797 | ET |
This note also recommends simplification of the name conventions previously recommended for Ethiopic list styles (Section 5) as follows:
| Old Name | New Name |
|---|---|
ethiopic-halehame |
ethiopic |
ethiopic-abegede |
ethiopic-abegede |
ethiopic-numeric |
ethiopic-numeric |
ethiopic-halehame-am |
amharic |
ethiopic-halehame-ti-er |
tigrinya-er |
ethiopic-halehame-ti-et |
tigrinya-et |
It is believed that the simplifications will be more intuitive and “user friendly” for web designers to work with.
Coptic script is derived from Greek and Demotic scripts and has been used exclusively for the Coptic language. The script is vital to Coptic liturgy which depends on a software’s capability to correctly present Coptic numerals. A numeric list style for Coptic along with lowercase and uppercase alphabetic sytles are recommended.
Developers should note that Coptic will split off from the combined Coptic-Greek range of Unicode in a future revision of the Unicode standard. The Coptic elements shared with Greek will then have their own code points thus resolving the typeface disparity between the two writing systems.
armenian Value of the list-style-type PropertyThe research carried out by Musheg Arakelyan showed that the existing armenian value of the list-style-type property is not sufficient. It should be noted first that Armenian alphabet uses both capital and small letters, that is why the presence of only one value in the CSS2 [CSS2] spec (and in the current CSS3 [CSS3-Lists] draft) is incorrect.
The traditional Armenian numbering uses small letters, that is why Musheg presumes that the current armenian value should be preserved within the spec, but for future use the new values of lower-armenian and upper-armenian could be introduced.
Musheg investigated a lot of normative documents where the numbers are set using Armenian letters. The current practice is documented in this note. The exact mechanism of calculating Armenian numbering is rather complex, and it is known that at least Mozilla 0.98 incorrectly implements this system. That is another reason for introducing clear definitions in the CSS3.
At this moment the authors can provide no information on whether other non-Cyrillic systems, particularly Georgian, use both capital and small letters for numbering or not.
The CSS standard until now define no means to specify customized lists. The only possible solution with current CSS3 Module: Lists [CSS3-Lists] is to specify every list item via the ::list-marker pseudo-element and the content property. Unfortunately this approach is not sufficient as list items are often combined and used as a basis for other values (that is, the string datatype is inappropriate). Authors of this note propose three possible solutions that are desribed below.
list-style-items Property, v. 1| Name: | list-style-items |
| Value: | [<urange> [, <urange>]*] | none |
| Initial: | none |
| Applies to: | all elements with ‘display: list-item’ |
| Inherited: | no |
| Percentages: | N/A |
| Media: | visual |
| Computed value: | specified value |
The list-style-items property can be used to specify user-defined list in case there’s no appropriate numbering system in this specification or no such numbering system could be provided in principle.
For example, authors may want to specify the numbering system consisting of the following markers: “First”, “Second”, “Third”. Apparently, this system is not included into CSS Lists, thus the list-style-items may be used to define such a system.
Note: authors should use the Unicode [Unicode3] values for any circumstances.
The example for the above-mentioned system when applied to the XHTML code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>List Tests</title>
<style type="text/css">
ol { list-style-items: U+0046-0069-0072-0073-0074,
U+0053-0065-0063-006f-006e-0064,
U+0054-0068-0069-0072-0064; }
li::list-marker { content: counter(list-item) ". " }
</style>
</head>
<body>
<ol>
<li><p>Tea</p></li>
<li><p>Sugar</p></li>
<li><p>Milk</p></li>
</ol>
</body>
</html>
Produces the following result on rendering:
First. Tea
Second. Sugar
Third. Milk
Note that in practice the content property could not be used to fully customize lists. Also note that the use of the list-style-items property in theory removes the need for elements like HTML’s [HTML32] ol and ul. Authors should not inappropriately use this property and the semantics of HTML [HTML32] (or any other language) should be preserved, i. e. authors should not make the elements look like unordered lists if they are naturally placed in some order.
Other disadvantages of this property are:
list-style-items Property, v. 2| Name: | list-style-items |
| Value: | [[ <integer>(<string>) | <identifier> ],]* [<integer>(<string>) | <identifier>] | none |
| Initial: | none |
| Applies to: | all elements with ‘display: list-item’ |
| Inherited: | no |
| Percentages: | N/A |
| Media: | visual |
| Computed value: | specified value |
integer represents a list item number to which the list item (the string) is applied and the identifier is meant to be a name for the new list.
With such system you cannot use the urange property to desribe long lists.
The example for the above-mentioned system when applied to the XHTML code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>List Tests</title>
<style type="text/css">
ol { list-style-items: 1("First"), 3("Third"), 10("Tenth") ordinal; }
list-style-type: decimal;
list-style-type: ordinal;
li::list-marker { content: counter(list-item) ". " }
</style>
</head>
<body>
<ol>
<li><p>Tea</p></li>
<li><p>Sugar</p></li>
<li><p>Milk</p></li>
…
<li><p>Cookie</p></li>
<li><p>Toast</p></li>
</ol>
</body>
</html>
Produces the following result on rendering:
First. Tea
2. Sugar
Third. Milk
…
Tenth. Cookie
11. Toast
Be sure to define the appropriate items before referring to the list by newly created name.
@listOn the whole lists on the web in many cases seem to be as complex as fonts, that’s why CSS3 Lists Module [CSS3-Lists] authors might want to consider the possibility of adding a new at-rule to the spec. It would make the addition of new lists extremely simply and convenient:
Here follows the list of possible descriptors:
@list {
unicode-range: U+0302, U+0561-0584; /* Prepare the necessary fonts */
list-items: U+0561 1,
U+0562 2,
U+0563 3,
U+056a-0561 11,
U+0584-057b-0572-0569 9999;
list-name: mynewlist; /* The name to refer via list-style-type */
list-calculation: sum; /* How to deal with multiple values in a row */
list-missing-items: decimal; /* Place something instead of missing values */
etc.
}
or even
@list {
src: url("http://www.geez.org/lists/ethiopian") /* According to RFCNNNN */
}
If more details are needed on various calculation mechanisms authors suggest to refer to section 8.4.
list-style-end PropertyNone of the CSS specifications provided a means to define what happens to a numbering system when it reaches its end. For example, after 26 list items, lower-latin rendering is undefined. We believe a property could be added to CSS3 Lists Module [CSS3-Lists] to address this issue. The list-style-end property documents the current practice and adds possible values for better control over long lists.
| Name: | list-style-end |
| Value: | radix | last-character | reset | none | inherit |
| Initial: | radix |
| Applies to: | all elements with ’display: list-item’ |
| Inherited: | no |
| Percentages: | N/A |
| Media: | visual |
| Computed value: | specified value |
This property defines the list’s behavior after all the list markers are over (e. g., after the letter ‘z’ is assigned to the 26th item for lower-latin). Values have the following meanings:
The item lists is used as a numeral system where the radix is the length of the list. This is the default behavior.
Consider the following fragment:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>List Tests</title>
<style type="text/css">
ol { list-style-end: radix;
list-style-type: lower-latin; }
</style>
</head>
<body>
<ol>
<li><p>List item 1</p></li>
<li><p>List item 2</p></li>
<li><p>List item 3</p></li>
…
<li><p>List item 25</p></li>
<li><p>List item 26</p></li>
<li><p>List item 27</p></li>
<li><p>List item 28</p></li>
…
<li><p>List item 52</p></li>
<li><p>List item 53</p></li>
<li><p>List item 54</p></li>
…
<li><p>List item 675</p></li>
<li><p>List item 676</p></li>
<li><p>List item 677</p></li>
</ol>
</body>
</html>
Will render something like:
a. List item 1
…
y. List item 25
z. List item 26
aa. List item 27
ab. List item 28
ac. List item 29
…
az. List item 52
ba. List item 53
bb. List item 54
…
zy. List item 675
zz. List item 676
aaa. List item 677
aab. List item 678
aac. List item 679
The numbering mechanism infinitely repeats the last character declared either in this specification or via the list-style-items property. This might be the case for some numbering systems, such as Old Slavonic (Glagolithic and Cyrillic alphabets) numbers, the last character of such numbering systems actually does not have a corresponding number, but an abstract name (e. g. “many”).
If you replace the value of the list-style-end property with the last-character value the rendering might produce the following result:
a. List item 1
…
y. List item 25
z. List item 26
z. List item 27
…
z. List item 678
z. List item 679
The numbering mechanism is reset, i. e. the numbering repeats from the very beginning.
Replacing the list-style-end value with reset results in the following:
a. List item 1
b. List item 2
…
y. List item 25
z. List item 26
a. List item 27
…
z. List item 52
a. List item 53
…
a. List item 677
b. List item 678
c. List item 679
No characters are rendered.
Assigning the none value to the list-style-end property defines the behavior:
a. List item 1
b. List item 2
…
y. List item 25
z. List item 26
List item 27
…
List item 53
…
List item 678
List item 679
list-style-type ValuesThis section provides a brief summary for the proposed values to be added to the upcoming CSS3 Lists [CSS3-Lists].
The exact mechanisms for calculating each of the above mentioned system is discussed later in this document. The members of the WG might want to consider the inclusion of other Cyrillic numbering systems into the CSS3 Lists [CSS3-Lists] draft. The list of such systems is provided in the Section 1. This note provides almost no information on the numbering systems of the alphabet that are excluded from this section. If the WG believes this information is necessary either the authors of this document or the WG itself can inquire into this matter. More on this can be found in Section 8.
list-style-type PropertyAlthough the current CSS Recommendations define no means to calculate various numbering system authors of this note offer a sample way to define some of the numbering systems mentioned in the CSS2 [CSS2] specification and in the current CSS3 Lists [CSS3-Lists] Working Draft.
The above-mentioned definitions of the list-style-type property values provided quick, accessible and easy-to-read descriptions for each of the value (these can be included into the spec for non-technical readers) at the same time leaving the actual implementation solely at the discretion of the developer. This practice is not possible in case Cyrillic (particularly Russian) lists are introduced. The following sections provide technical readers with the exact definitions of the list-style-type values.
The actual Unicode values for the list-style-type values are (sample rendering in brackets):
hebrew, georgian, cjk-ideographic, simp-chinese-formal, simp-chinese-informal, trad-chinese-formal, trad-chinese-informal, japanese-formal, japanese-informal, arabic-indic, persian, devanagari, gurmukhi, gujarati, kannada, malayalam, bengali, tamil, telugu, thai, lao, myanmar, khmer, urdu, oriya.
Please see section 8.3 for more information on them.
This section provides more complete descriptions for all the list-style-type values.
list-style-end property is radix. Nine digits are employed, Unicode range: U+0030-0039.| English Name | Digit | Unicode Value |
|---|---|---|
| Zero | 0 | U+0030 |
| One | 1 | U+0031 |
| Two | 2 | U+0032 |
| Three | 3 | U+0033 |
| Four | 4 | U+0034 |
| Five | 5 | U+0035 |
| Six | 6 | U+0036 |
| Seven | 7 | U+0037 |
| Eight | 8 | U+0038 |
| Nine | 9 | U+0039 |
decimal system. The values of the initial first nine values are rendered with leading zeros. Can be easily deprecated. See section 7 for more information.| Decimal Number | Roman Number | Unicode Value |
|---|---|---|
| 1 | i or I | U+0069 or U+0049 |
| 5 | v or V | U+0076 or U+0056 |
| 10 | x or X | U+0078 or U+0058 |
| 50 | l or L | U+006c or U+004c |
| 100 | c or C | U+0063 or U+0043 |
| 500 | d or D | U+0064 or U+0044 |
| 1000 | m or M | U+006d or U+004d |
The highest possible value is 3999 (MMMCMXCIX) due to limitations of the system (only three same characters are allowed in a row). If the character on the left of the given character is of lower value it is subtracted from the given character, it is is on the right it is added to the given character. The recommended practice of rendering values higher than 3999 is to use decimal system with radix. Thus the implementaion that supports these values should also support decimal. One of the values can be deprecated.
list-style-end value is radix.
list-style-end value is radix. Unicode range: U+0041-005a, U+0061-007a. Three values can be deprecated.
| Dec. | Uni. | Samp. | Dec. | Uni. | Samp. | Dec. | Uni. | Samp. | Dec. | Uni. | Samp. |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | U+0561 | ա | 10 | U+056a | ժ | 100 | U+0573 | ճ | 1000 | U+057c | ռ |
| 2 | U+0562 | բ | 20 | U+056b | ի | 200 | U+0574 | մ | 2000 | U+057d | ս |
| 3 | U+0563 | գ | 30 | U+056c | լ | 300 | U+0575 | յ | 3000 | U+057e | վ |
| 4 | U+0564 | դ | 40 | U+056d | խ | 400 | U+0576 | ն | 4000 | U+057f | տ |
| 5 | U+0565 | ե | 50 | U+056e | ծ | 500 | U+0577 | շ | 5000 | U+0580 | ր |
| 6 | U+0566 | զ | 60 | U+056f | կ | 600 | U+0578 | ո | 6000 | U+0581 | ց |
| 7 | U+0567 | է | 70 | U+0570 | հ | 700 | U+0579 | չ | 7000 | U+0578 U+0582 | ու |
| 8 | U+0568 | ը | 80 | U+0571 | ձ | 800 | U+057a | պ | 8000 | U+0583 | փ |
| 9 | U+0569 | թ | 90 | U+0572 | ղ | 900 | U+057b | ջ | 9000 | U+0584 | ք |
| Dec. | Uni. | Samp. | Dec. | Uni. | Samp. | Dec. | Uni. | Samp. | Dec. | Uni. | Samp. |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | U+0531 | Ա | 10 | U+053a | Ժ | 100 | U+0543 | Ճ | 1000 | U+054c | Ռ |
| 2 | U+0532 | Բ | 20 | U+053b | Ի | 200 | U+0544 | Մ | 2000 | U+054d | Ս |
| 3 | U+0533 | Գ | 30 | U+053c | Լ | 300 | U+0545 | Յ | 3000 | U+054e | Վ |
| 4 | U+0534 | Դ | 40 | U+053d | Խ | 400 | U+0546 | Ն | 4000 | U+054f | Տ |
| 5 | U+0535 | Ե | 50 | U+053e | Ծ | 500 | U+0547 | Շ | 5000 | U+0550 | Ր |
| 6 | U+0536 | Զ | 60 | U+053f | Կ | 600 | U+0548 | Ո | 6000 | U+0551 | Ց |
| 7 | U+0537 | Է | 70 | U+0540 | Հ | 700 | U+0549 | Չ | 7000 | U+0548 U+0552 | ՈՒ |
| 8 | U+0538 | Ը | 80 | U+0541 | Ձ | 800 | U+054a | Պ | 8000 | U+0553 | Փ |
| 9 | U+0539 | Թ | 90 | U+0542 | Ղ | 900 | U+054b | Ջ | 9000 | U+0554 | Ք |
Adding the ̂ (COMBINING CIRCUMFLEX ACCENT, U+0302) sign above a number mupltiplies it by 1000. Due to this limitation the highest number possible with Armenian systems is 9 999 999 (ք̂ջ̂ղ̂քջղթ or Ք̂Ջ̂Ղ̂ՔՋՂԹ). 10 000 000 cannot be written using these systems.
Important note: conforming user agents should render the COMBINING CIRCUMFLEX ACCENT character above the 7000 number (ու - U+0578 U+0582 or ՈՒ - U+0548 U+0552) as if it was just one character. That is, it is not mentioned (perhaps due to error) in the Unicode standard [Unicode3] that the characters U+0582 and U+0552 should be placed right after the preceding character (as if it was combining) and form one letter with it. That's why when U+0302 is applied to this sequence the accent should be rendered so that it covers both characters.
Example: composing the number 7 482 951 using lower-armenian.
7 000 000 = 7 000 × 1000 + 400 × 1000 + 80 × 1000 + 2000 + 900 + 50 + 1 = ու̂ + ն̂ + ձ̂ + ս + ջ + ծ + ա = ու̂ն̂ձ̂սջծա.
See also deprecation notes.
radix is recommended for use once the list items are over. Exact Unicode ranges and starting points are described earlier. See also deprecation notes.list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.
list-style-end value is radix.