Javanese

Javanese

Second-Level Reference Label Generation Rules, 13 August 2026 Current

Summary

Version1 — Second Level Reference LGR
Date
Tag und-Java (Javanese)
Unicode16.0.0
Source filelgr-second-level-javanese-script-13aug26-en.xml (38.0kb)
This ruleset in other editions: 13 August 2026 25 October 2024

This ruleset is integrated into the Common (integrated set) ruleset of this release.

Description

INSTRUCTIONS

  • These instructions cover how to adopt an LGR based on this reference LGR for a given zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.
  • As described in the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an LGR MUST contain the following elements in its header:
    • Script or Language Designator (see below for guidance)
    • Version Number (this must increase with each amendment to the LGR, even if the updates are limited to the header itself)
    • Effective Date (the date at which the policy becomes applicable in operational use)
    • Registry Contact Details (contact name, email address, and/or phone number)
  • The following information is optional:
    • Document creation date
    • Applicable Domain(s)
    • Changes made to the Reference LGR before adopting

Please add or modify the following items in the XML source code for this file before depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)

Meta Data

Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, please replace or delete the default comment. Version comments may be used by some tools as part of the page header.

<version comment="[Please replace (or delete) the optional comment]">[Please fill in version number, starting at 1]</version>

<date>[Please fill in with publication date, in YYYY-MM-DD format]</date>

<validity-start>[Please fill in effective date, in YYYY-MM-DD format]</validity-start>

Note: the scope element may be repeated, so that the same document can serve multiple domains.

<scope type="domain">[Please provide, in ".domain" format]</scope>

Registry Contact Information:

Please fill in the Registry Contact Details.

Change History

If you made technical modifications to the LGR, please summarize them in the Change History (and also note the details in the appropriate section of the description).

PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT.

Read the rest of the description Show less

Registry Contact Details

  • Contact Name: [Please fill in Contact Name]
  • Email address: [Please fill in Email address]
  • Phone Number: [Please fill in optional Phone Number]

Reference Label Generation Rules for the Javanese Script

Overview

This document specifies a set of Label Generation Rules (LGR) for the Javanese script using a script-specific repertoire for the second level domain or domains identified above. The format of this file follows [RFC 7940]. This LGR is adapted from the “Reference LGR for the Second Level for the Javanese Script” [Ref-LGR-und-Java]; for details, see Change History below.

Standalone LGR: This LGR is designed to be used in a zone that does not cater to IDNs other than those valid under this LGR. This LGR lacks features that would allow its use in the context of another LGR in the same zone, and it may contain other features incompatible with such use.

For details and additional background on the Javanese script, see "Javanese Script Reference Label Generation Rules for Second-Level Domain Names" [Proposal-Javanese].

Repertoire

The repertoire for the Javanese Script contains 52 characters as defined in Section 5.1, “Included Code Points” in [Proposal-Javanese].

The code point U+A9B3 JAVANESE SIGN CECAK TELU is defined implicitly as part of six Aksara-Rekan sequences defined in Section 7.3 of [Proposal-Javanese]. These sequences function like consonants. In addition, there are 20 sequences defined as part of the Aksara Murda and Aksara Wyanjana, two of which also contain U+A9B3 JAVANESE SIGN CECAK TELU, for a total of 26 sequences.

For the second level, the repertoire has been augmented with U+002D HYPHEN-MINUS, for a total of 78 repertoire elements.

Repertoire Listing: Each code point or range is tagged with the script or scripts with which the code point is used and one or more other character categories. For each repertoire element, one or more references document sufficient justification for inclusion in the repertoire; see the “References” below.

Excluded Characters

The following 23 code points from the Javanese block in [Unicode 16.0.0] have been excluded in the Reference LGR repertoire due to a variety of reasons; some are used only in Sanskrit or ancient manuscripts. The digits are excluded because many of them are homographs of letters.

  • U+A980 JAVANESE SIGN PANYANGGA
  • U+A985 JAVANESE LETTER I KAWI
  • U+A987 JAVANESE LETTER II
  • U+A98B JAVANESE LETTER NGA LELET RASWADI
  • U+A996 JAVANESE LETTER CA MURDA
  • U+A998 JAVANESE LETTER NYA MURDA
  • U+A999 JAVANESE LETTER JA MAHAPRANA
  • U+A99C JAVANESE LETTER TTA MAHAPRANA
  • U+A99E JAVANESE LETTER DDA MAHAPRANA
  • U+A9AC JAVANESE LETTER RA AGUNG
  • U+A9B5 JAVANESE VOWEL SIGN TOLONG
  • U+A9B7 JAVANESE VOWEL SIGN WULU MELIK
  • U+A9B9 JAVANESE VOWEL SIGN SUKU MENDUT
  • U+A9D0 JAVANESE DIGIT ZERO
  • U+A9D1 JAVANESE DIGIT ONE
  • U+A9D2 JAVANESE DIGIT TWO
  • U+A9D3 JAVANESE DIGIT THREE
  • U+A9D4 JAVANESE DIGIT FOUR
  • U+A9D5 JAVANESE DIGIT FIVE
  • U+A9D6 JAVANESE DIGIT SIX
  • U+A9D7 JAVANESE DIGIT SEVEN
  • U+A9D8 JAVANESE DIGIT EIGHT
  • U+A9D9 JAVANESE DIGIT NINE

See Section 5.2, “Excluded Code Point” in [Proposal-Javanese].

Variants

The LGR defines a number of in-script variants. The variants are based on linguistic and orthographic analysis of the Javanese script, as well as contemporary and historical usage patterns. There are two sets of consonants in the Javanese script, Aksara Murda and Aksara Wyanjana, which are used to represent the same set of sounds but differ in whether they are used in a formal or informal context. Each set also includes ten sequences. Corresponding members of these sets are otherwise interchangeable; if any label containing one of these variants is selected first, all other equivalent variant labels must be blocked.

Digit Variants: The Javanese reference LGR does not include native digits, so there are no semantic variants defined.

Should an extension be contemplated that adds native digits, these might require variant relations. At the same time, however, any native digits would normally be semantic variants of the ASCII digits. In any zone containing multiple scripts, these two types of variant relations for digits may lead to complications once transitivity is applied.

This LGR does not define allocatable variants.

The specification of variants in this LGR follows the guidelines in [RFC 8228].

Character Classes

The LGR defines the following character classes:

  • Consonants — The Javanese script is an abugida, a segmental writing system in which consonant–vowel sequences are written as units. Each consonant, like in other Brahmi scripts, constitutes a syllable with an inherent vowel /a/ that could be modified by following it with a Dependent Vowel Sign.
  • Medial Consonants — A medial consonant functions to represent a semivowel sound that occurs within a single syllable.
  • Independent Vowels — The independent vowels are mainly used for personal names and languages other than Javanese, for example, Indonesian, Sundanese, and English. In writing Javanese text, the independent vowel is usually replaced with the character U+A9B2 followed by the appropriate dependent vowel.
  • Dependent Vowels — Dependent vowels are used to modify the inherent vowel of a consonant or independent vowel.
  • Signs — This class collects various signs used in the Javanese script.
  • Common-digits — the set of ASCII digits.

Section 5.1 in [Proposal-Javanese] lists "Category" values for both single code points and sequences. While the category values for single code points can be expressed as "tag" attributes in the LGR's XML source file, the desire to treat the sequences like consonants has to be expressed explicitly in context or WLE rules.

Whole Label Evaluation (WLE) and Context Rules

Common Rules

By default, the LGR includes the rules and actions to implement the following restrictions mandated by the IDNA protocol. They are marked with ⍟.

  • Hyphen Restrictions — restrictions on the allowable placement of hyphens (no leading/ending hyphen and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [5891]. They are implemented here as a context rule on U+002D (-) HYPHEN-MINUS.
  • Leading Combining Marks — restrictions on the allowable placement of combining marks (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [5891].

Script-specific rules in this LGR already prevent combining marks in leading position, making the “leading-combining-mark” rule technically redundant. It is retained here for consistency.

Default Actions

This LGR includes the default actions for LGRs, as well as the action needed to invalidate labels with misplaced combining marks. They are marked with ⍟. For a description see [RFC 7940].

Script-specific Context Rules

The LGR defines the following script-specific context rules applicable to various classes of characters.

  • follows-A9BA-or- A9BB — U+A9B4 VOWEL SIGN TARUNG must follow either U+A9BA JAVANESE VOWEL SIGN TALING or U+A9BB JAVANESE VOWEL SIGN DIRGA MURE.
  • follows-cons-askara-rekan-med-vowel-dep — Various signs (U+A981, U+A982, U+A983) must follow a consonant, an aksara rekan sequence, a medial consonant, an independent vowel, or a dependent vowel.
  • follows-cons-aksara-rekan-med-vowel — A dependent vowel other than U+A9B4 must follow a consonant, an aksara rekan sequence, a medial consonant, or an independent vowel.
  • follows-cons-aksara-rekan-vowel — U+A9C0 pangkon must follow a consonant, an aksara rekan sequence, or an independent vowel.
  • follows-cons-aksara-rekan — Medial consonants must follow a consonant or an aksara rekan sequence.

Any of the six sequences ending in U+A9B3, the so-called aksara rekan sequences, also act like consonants in the context rules. (This also applies in the two cases, where a longer sequence ends with an aksara-rekan subsequence.) See item 7 in Section 7.4, the [Proposal-Javanese]. However, as they cannot be represented by a class, they are represented by the rule:

  • aksara-rekan — a rule representing the six Aksara Rekan sequences defined in the repertoire and referenced by the other rules.

Script-specific Whole Label Rules

The LGR defines the following script-specific whole label rules:

  • pangkon-disallowed — According to Section 7.1 in [Proposal-Javanese], the pattern (consonant/independent vowel + U+A9C0 + consonant/independent vowel + U+A9C0 + consonant/independent vowel) is prohibited, as it would result in below-2-base stacking.

This rule is implemented as a whole-label rule that triggers a corresponding action, invalidating any label containing the full pattern. As this pattern also occurs within any triple-stack pattern, triple stacking is invalidated at the same time. For a WLE rule, it is immaterial whether the code points are part of a sequence or not; therefore, the special handling of sequences in Section 7.4 of [Proposal-Javanese] is implicit.

Actions

Default Actions

This LGR includes the default actions for LGRs, as well as the action needed to invalidate labels with misplaced combining marks. They are marked with ⍟. For a description see [RFC 7940].

Javanese-specific actions

The pangkon restriction rule triggers a Javanese-specific action that invalidates any original or variant labels not satisfying the constraints. See Section 7, “Whole Label Evaluation (WLE) Rules” in [Proposal-Javanese].

Methodology

This Second Level Reference LGR for the Javanese Script was developed based on the proposal from the Javanese Script Reference LGR Generation Panel and edited by Asmus Freytag based on community feedback and public review. See [Proposal-Javanese] for methodology and contributors.

Changes from Version Dated 13 August 2026

This is a placeholder to document any changes applied by the registry operator when adopting the reference LGR. If no change has been noted, the LGR is the same as the Second Level Reference LGR for the Javanese Script [Ref-LGR-und-Java] without normative changes.

References

This document cites the following general references.

[EGIDS]
Lewis and Simons, “EGIDS: Expanded Graded Intergenerational Disruption Scale,” documented in [SIL-Ethnologue] and summarized here: https://en.wikipedia.org/wiki/Expanded_Graded_Intergenerational_Disruption_Scale_(EGIDS)
[Guidelines]
ICANN, “Guidelines for Developing Reference LGRs for the Second Level”, (Los Angeles, California: ICANN, 27 May 2020), https://www.icann.org/en/system/files/files/lgr-guidelines-second-level-27may20-en.pdf
[Level-2-Overview]
Internet Corporation for Assigned Names and Numbers, (ICANN),“Reference Label Generation Rules (LGR) for the Second Level: Overview and Summary” (PDF), (Los Angeles, California: ICANN, 13 August 2026), https://www.icann.org/en/system/files/files/level2-lgr-overview-summary-13aug26-en.pdf
[Proposal-Javanese]
“Javanese Script Reference Label Generation Rules Reference for Second Level Domain Names”, 13 August 2026, https://www.icann.org/sites/default/files/packages/lgr/proposal-javanese-second-level-13aug26-en.pdf
[Ref-LGR-und-Java]
ICANN, Second Level Reference Label Generation Rules for the Javanese Script (und-Java), 13 August 2026 (XML) https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-javanese-script-13aug26-en.xml non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-javanese-script-13aug26-en.html
[RFC 7940]
Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940
[RFC 8228]
A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017, https://www.rfc-editor.org/info/rfc8228
[SIL-Ethnologue]
David M. Eberhard, Gary F. Simons & Charles D. Fennig (eds.). 2021. Ethnologue: Languages of the World, twenty-fourth edition. Dallas, Texas: SIL International. Online version available as https://www.ethnologue.com
[Unicode 16.0.0]
The Unicode Consortium. The Unicode Standard, Version 16.0.0 (South San Francisco: The Unicode Consortium, 2024. ISBN 978-1-936213-34-4) https://www.unicode.org/versions/Unicode16.0.0/

References [0] to [10] refer to the Unicode Standard versions in which the corresponding code points were initially encoded. References [110] and above correspond to sources given in [Proposal-Javanese] justifying the inclusion of the corresponding code points. Entries in the table may have multiple source reference values. In the listing of whole label evaluation and context rules, reference [5891] indicates the source for common rules.

Repertoire

Glyph Code point Tags and context Variants
- U+002D HYPHEN-MINUS 0 110 111 112 113 HYPHEN-MINUS TagHyphenTagsc:Zyyy Contextnot hyphen-minus-disallowed
ꦁ U+A981 JAVANESE SIGN CECAK 10 110 111 112 113 JAVANESE SIGN CECAK = anusvara Tagsc:JavaTagSign Contextfollows-cons-aksara-rekan-med-vowel-dep
ꦂ U+A982 JAVANESE SIGN LAYAR 10 110 111 112 113 JAVANESE SIGN LAYAR = final r Tagsc:JavaTagSign Contextfollows-cons-aksara-rekan-med-vowel-dep
ꦂꦟ U+A982U+A99F sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER NA MURDA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER NA MURDA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦤ U+A982 + U+A9A4 blocked rna
ꦂꦠ U+A982U+A9A0 sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER TA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER TA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦡ U+A982 + U+A9A1 blocked rta
ꦂꦡ U+A982U+A9A1 sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER TA MURDA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER TA MURDA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦠ U+A982 + U+A9A0 blocked rta
ꦂꦤ U+A982U+A9A4 sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER NA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER NA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦟ U+A982 + U+A99F blocked rna
ꦂꦰ U+A982U+A9B0 sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER SA MAHAPRANA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER SA MAHAPRANA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦱ U+A982 + U+A9B1 blocked rsa
ꦂꦱ U+A982U+A9B1 sequence of 2 JAVANESE SIGN LAYAR + JAVANESE LETTER SA 113 JAVANESE SIGN LAYAR + JAVANESE LETTER SA Contextfollows-cons-aksara-rekan-med-vowel-dep ꦂꦰ U+A982 + U+A9B0 blocked rsa
ꦃ U+A983 JAVANESE SIGN WIGNYAN 10 110 111 112 113 JAVANESE SIGN WIGNYAN = visarga Tagsc:JavaTagSign Contextfollows-cons-aksara-rekan-med-vowel-dep
ꦄ U+A984 JAVANESE LETTER A 10 110 111 112 113 JAVANESE LETTER A Tagsc:JavaTagVowel
ꦆ U+A986 JAVANESE LETTER I 10 110 111 112 113 JAVANESE LETTER I Tagsc:JavaTagVowel
ꦈ U+A988 JAVANESE LETTER U 10 110 111 112 113 JAVANESE LETTER U Tagsc:JavaTagVowel
ꦉ U+A989 JAVANESE LETTER PA CEREK 10 110 111 112 113 JAVANESE LETTER PA CEREK = vocalic r; rě in Javanese Tagsc:JavaTagVowel
ꦊ U+A98A JAVANESE LETTER NGA LELET 10 110 111 112 113 JAVANESE LETTER NGA LELET = vocalic l; lě in Javanese Tagsc:JavaTagVowel
ꦌ U+A98C JAVANESE LETTER E 10 110 111 112 113 JAVANESE LETTER E Tagsc:JavaTagVowel
ꦍ U+A98D JAVANESE LETTER AI 10 112 113 JAVANESE LETTER AI Tagsc:JavaTagVowel
ꦎ U+A98E JAVANESE LETTER O 10 110 111 112 113 JAVANESE LETTER O Tagsc:JavaTagVowel
ꦏ U+A98F JAVANESE LETTER KA 10 110 111 112 113 JAVANESE LETTER KA TagConsonantTagsc:Java ꦑ U+A991 blocked
ꦏ꦳ U+A98FU+A9B3 sequence of 2 JAVANESE LETTER KA + JAVANESE SIGN CECAK TELU 110 111 113 JAVANESE LETTER KA + JAVANESE SIGN CECAK TELU
ꦐ U+A990 JAVANESE LETTER KA SASAK 10 113 JAVANESE LETTER KA SASAK = qa TagConsonantTagsc:Java
ꦑ U+A991 JAVANESE LETTER KA MURDA 10 110 111 112 113 JAVANESE LETTER KA MURDA = kha TagConsonantTagsc:Java ꦏ U+A98F blocked
ꦒ U+A992 JAVANESE LETTER GA 10 110 111 112 113 JAVANESE LETTER GA TagConsonantTagsc:Java ꦓ U+A993 blocked Ga
ꦒ꦳ U+A992U+A9B3 sequence of 2 JAVANESE LETTER GA + JAVANESE SIGN CECAK TELU 110 111 113 JAVANESE LETTER GA + JAVANESE SIGN CECAK TELU
ꦓ U+A993 JAVANESE LETTER GA MURDA 10 110 111 112 113 JAVANESE LETTER GA MURDA = gha TagConsonantTagsc:Java ꦒ U+A992 blocked Ga
ꦔ U+A994 JAVANESE LETTER NGA 10 110 111 112 113 JAVANESE LETTER NGA TagConsonantTagsc:Java
ꦕ U+A995 JAVANESE LETTER CA 10 110 111 112 113 JAVANESE LETTER CA TagConsonantTagsc:Java
ꦗ U+A997 JAVANESE LETTER JA 10 110 111 112 113 JAVANESE LETTER JA TagConsonantTagsc:Java
ꦗ꦳ U+A997U+A9B3 sequence of 2 JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU 110 111 113 JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU
ꦚ U+A99A JAVANESE LETTER NYA 10 110 111 112 113 JAVANESE LETTER NYA TagConsonantTagsc:Java
ꦚ꧀ꦕ U+A99AU+A9C0U+A995 sequence of 3 JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER CA 113 JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER CA ꦤ꧀ꦕ U+A9A4 + U+A9C0 + U+A995 blocked Nca
ꦚ꧀ꦗ U+A99AU+A9C0U+A997 sequence of 3 JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER JA 113 JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER JA ꦤ꧀ꦗ U+A9A4 + U+A9C0 + U+A997 blocked Nja
ꦚ꧀ꦗ꦳ U+A99AU+A9C0U+A997U+A9B3 sequence of 4 JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU 113
Comment JAVANESE LETTER NYA + JAVANESE PANGKON + JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU; Sequence ending with Aksara Rekan
ꦤ꧀ꦗ꦳ U+A9A4 + U+A9C0 + U+A997 + U+A9B3 blocked Nza
ꦛ U+A99B JAVANESE LETTER TTA 10 110 111 112 113 JAVANESE LETTER TTA TagConsonantTagsc:Java
ꦝ U+A99D JAVANESE LETTER DDA 10 112 113 JAVANESE LETTER DDA TagConsonantTagsc:Java ꦣ U+A9A3 blocked Dha
ꦟ U+A99F JAVANESE LETTER NA MURDA 10 110 111 112 113 JAVANESE LETTER NA MURDA = nna TagConsonantTagsc:Java ꦤ U+A9A4 blocked Na
ꦟ꧀ꦛ U+A99FU+A9C0U+A99B sequence of 3 JAVANESE LETTER NA MURDA + JAVANESE PANGKON + JAVANESE LETTER TTA 113 JAVANESE LETTER NA MURDA + JAVANESE PANGKON + JAVANESE LETTER TTA ꦤ꧀ꦛ U+A9A4 + U+A9C0 + U+A99B blocked ntha
ꦟ꧀ꦝ U+A99FU+A9C0U+A99D sequence of 3 JAVANESE LETTER NA MURDA + JAVANESE PANGKON + JAVANESE LETTER DDA 113 JAVANESE LETTER NA MURDA + JAVANESE PANGKON + JAVANESE LETTER DDA ꦤ꧀ꦝ U+A9A4 + U+A9C0 + U+A99D blocked ndha
ꦠ U+A9A0 JAVANESE LETTER TA 10 110 111 112 113 JAVANESE LETTER TA TagConsonantTagsc:Java ꦡ U+A9A1 blocked Ta
ꦡ U+A9A1 JAVANESE LETTER TA MURDA 10 110 111 112 113 JAVANESE LETTER TA MURDA = tha TagConsonantTagsc:Java ꦠ U+A9A0 blocked Ta
ꦢ U+A9A2 JAVANESE LETTER DA 10 110 111 112 113 JAVANESE LETTER DA TagConsonantTagsc:Java
ꦢ꦳ U+A9A2U+A9B3 sequence of 2 JAVANESE LETTER DA + JAVANESE SIGN CECAK TELU 110 111 113 JAVANESE LETTER DA + JAVANESE SIGN CECAK TELU
ꦣ U+A9A3 JAVANESE LETTER DA MAHAPRANA 10 110 111 112 113 JAVANESE LETTER DA MAHAPRANA = dha TagConsonantTagsc:Java ꦝ U+A99D blocked Dha
ꦤ U+A9A4 JAVANESE LETTER NA 10 110 111 112 113 JAVANESE LETTER NA TagConsonantTagsc:Java ꦟ U+A99F blocked Na
ꦤ꧀ꦕ U+A9A4U+A9C0U+A995 sequence of 3 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER CA 113 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER CA ꦚ꧀ꦕ U+A99A + U+A9C0 + U+A995 blocked Nca
ꦤ꧀ꦗ U+A9A4U+A9C0U+A997 sequence of 3 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER JA 113 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER JA ꦚ꧀ꦗ U+A99A + U+A9C0 + U+A997 blocked Nja
ꦤ꧀ꦗ꦳ U+A9A4U+A9C0U+A997U+A9B3 sequence of 4 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU 113
Comment JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER JA + JAVANESE SIGN CECAK TELU; Sequence ending with Aksara Rekan
ꦚ꧀ꦗ꦳ U+A99A + U+A9C0 + U+A997 + U+A9B3 blocked Nza
ꦤ꧀ꦛ U+A9A4U+A9C0U+A99B sequence of 3 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER TTA 113 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER TTA ꦟ꧀ꦛ U+A99F + U+A9C0 + U+A99B blocked ntha
ꦤ꧀ꦝ U+A9A4U+A9C0U+A99D sequence of 3 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER DDA 113 JAVANESE LETTER NA + JAVANESE PANGKON + JAVANESE LETTER DDA ꦟ꧀ꦝ U+A99F + U+A9C0 + U+A99D blocked ndha
ꦥ U+A9A5 JAVANESE LETTER PA 10 110 111 112 113 JAVANESE LETTER PA TagConsonantTagsc:Java ꦦ U+A9A6 blocked Pa
ꦥ꦳ U+A9A5U+A9B3 sequence of 2 JAVANESE LETTER PA + JAVANESE SIGN CECAK TELU 110 111 113 JAVANESE LETTER PA + JAVANESE SIGN CECAK TELU
ꦦ U+A9A6 JAVANESE LETTER PA MURDA 10 110 111 112 113 JAVANESE LETTER PA MURDA = pha TagConsonantTagsc:Java ꦥ U+A9A5 blocked Pa
ꦧ U+A9A7 JAVANESE LETTER BA 10 110 111 112 113 JAVANESE LETTER BA TagConsonantTagsc:Java ꦨ U+A9A8 blocked Ba
ꦨ U+A9A8 JAVANESE LETTER BA MURDA 10 110 111 112 113 JAVANESE LETTER BA MURDA =bha TagConsonantTagsc:Java ꦧ U+A9A7 blocked Ba
ꦩ U+A9A9 JAVANESE LETTER MA 10 110 111 112 113 JAVANESE LETTER MA TagConsonantTagsc:Java
ꦪ U+A9AA JAVANESE LETTER YA 10 110 111 112 113 JAVANESE LETTER YA TagConsonantTagsc:Java
ꦫ U+A9AB JAVANESE LETTER RA 10 110 111 112 113 JAVANESE LETTER RA TagConsonantTagsc:Java
ꦭ U+A9AD JAVANESE LETTER LA 10 110 111 112 113 JAVANESE LETTER LA TagConsonantTagsc:Java
ꦮ U+A9AE JAVANESE LETTER WA 10 110 111 112 113 JAVANESE LETTER WA TagConsonantTagsc:Java
ꦮ꦳ U+A9AEU+A9B3 sequence of 2 JAVANESE LETTER WA + JAVANESE SIGN CECAK TELU 110 113 JAVANESE LETTER WA + JAVANESE SIGN CECAK TELU
ꦯ U+A9AF JAVANESE LETTER SA MURDA 10 110 111 112 113 JAVANESE LETTER SA MURDA = sha TagConsonantTagsc:Java ꦰ U+A9B0 blocked Sa ꦱ U+A9B1 blocked Sa
ꦰ U+A9B0 JAVANESE LETTER SA MAHAPRANA 10 112 113 JAVANESE LETTER SA MAHAPRANA TagConsonantTagsc:Java ꦯ U+A9AF blocked Sa ꦱ U+A9B1 blocked Sa
ꦰ꧀ꦛ U+A9B0U+A9C0U+A99B sequence of 3 JAVANESE LETTER SA MAHAPRANA + JAVANESE PANGKON + JAVANESE LETTER TTA 113 JAVANESE LETTER SA MAHAPRANA + JAVANESE PANGKON + JAVANESE LETTER TTA ꦱ꧀ꦛ U+A9B1 + U+A9C0 + U+A99B blocked stha
ꦰ꧀ꦝ U+A9B0U+A9C0U+A99D sequence of 3 JAVANESE LETTER SA MAHAPRANA + JAVANESE PANGKON + JAVANESE LETTER DDA 113 JAVANESE LETTER SA MAHAPRANA + JAVANESE PANGKON + JAVANESE LETTER DDA ꦱ꧀ꦝ U+A9B1 + U+A9C0 + U+A99D blocked sdha
ꦱ U+A9B1 JAVANESE LETTER SA 10 110 111 112 113 JAVANESE LETTER SA TagConsonantTagsc:Java ꦯ U+A9AF blocked Sa ꦰ U+A9B0 blocked Sa
ꦱ꧀ꦛ U+A9B1U+A9C0U+A99B sequence of 3 JAVANESE LETTER SA + JAVANESE PANGKON + JAVANESE LETTER TTA 113 JAVANESE LETTER SA + JAVANESE PANGKON + JAVANESE LETTER TTA ꦰ꧀ꦛ U+A9B0 + U+A9C0 + U+A99B blocked stha
ꦱ꧀ꦝ U+A9B1U+A9C0U+A99D sequence of 3 JAVANESE LETTER SA + JAVANESE PANGKON + JAVANESE LETTER DDA 113 JAVANESE LETTER SA + JAVANESE PANGKON + JAVANESE LETTER DDA ꦰ꧀ꦝ U+A9B0 + U+A9C0 + U+A99D blocked sdha
ꦲ U+A9B2 JAVANESE LETTER HA 10 110 111 112 113 JAVANESE LETTER HA TagConsonantTagsc:Java
ꦴ U+A9B4 JAVANESE VOWEL SIGN TARUNG 10 110 111 112 113 JAVANESE VOWEL SIGN TARUNG TagDependent-VowelTagsc:Java Contextfollows-A9BA-or-A9BB
ꦶ U+A9B6 JAVANESE VOWEL SIGN WULU 10 110 111 112 113 JAVANESE VOWEL SIGN WULU TagDependent-VowelTagsc:Java Contextfollows-cons-aksara-rekan-med-vowel
ꦸ U+A9B8 JAVANESE VOWEL SIGN SUKU 10 110 111 112 JAVANESE VOWEL SIGN SUKU TagDependent-VowelTagsc:Java Contextfollows-cons-aksara-rekan-med-vowel
ꦺ U+A9BA JAVANESE VOWEL SIGN TALING 10 110 111 112 JAVANESE VOWEL SIGN TALING TagDependent-VowelTagsc:Java Contextfollows-cons-aksara-rekan-med-vowel
ꦻ U+A9BB JAVANESE VOWEL SIGN DIRGA MURE 10 112 JAVANESE VOWEL SIGN DIRGA MURE TagDependent-VowelTagsc:Java Contextfollows-cons-aksara-rekan-med-vowel
ꦼ U+A9BC JAVANESE VOWEL SIGN PEPET 10 110 111 112 JAVANESE VOWEL SIGN PEPET TagDependent-VowelTagsc:Java Contextfollows-cons-aksara-rekan-med-vowel
ꦽ U+A9BD JAVANESE CONSONANT SIGN KERET 10 110 111 112 JAVANESE CONSONANT SIGN KERET TagMedial-ConsonantTagsc:Java Contextfollows-cons-aksara-rekan
ꦾ U+A9BE JAVANESE CONSONANT SIGN PENGKAL 10 110 111 112 JAVANESE CONSONANT SIGN PENGKAL TagMedial-ConsonantTagsc:Java Contextfollows-cons-aksara-rekan
ꦿ U+A9BF JAVANESE CONSONANT SIGN CAKRA 10 110 111 112 JAVANESE CONSONANT SIGN CAKRA TagMedial-ConsonantTagsc:Java Contextfollows-cons-aksara-rekan
꧀ U+A9C0 JAVANESE PANGKON 10 110 111 112 JAVANESE PANGKON Tagsc:JavaTagVirama Contextfollows-cons-aksara-rekan-vowel

Variants

Code points grouped into sets of mutual variants. Every member of a set produces the same set of variant labels, so a registration of one has implications for all the others. Sets of a single member are omitted, as are the identity mappings RFC 7940 requires each member to declare.

18 variant sets, containing 40 variants.

Character classes

Named sets of code points that the rules below refer to.

NameDefinition
consonant {tag Consonant} 101 Any Javanese consonant
medial-cons {tag Medial-Consonant} 101 Any Javanese medial consonant
vowel {tag Vowel} 101 Any Javanese independent vowel
dep-vowel {tag Dependent-Vowel} 101 Any Javanese dependent vowel
sign ({tag Sign} ∪ {tag Hyphen}) 101 Any Javanese sign, plus Hyphen
virama {tag Virama} 101 The Javanese virama (Pangkon)
aksara-rekan-base [U+A98F U+A992 U+A997 U+A9A2 U+A9A5 U+A9AE] The base consonants in aksara rekan sequences

Rules

Conditions evaluated against a whole label, or against the context around a single code point. The notation borrows from regular expressions: ^ and $ anchor to the start and end of a label, . matches any code point, (?= ) and (?<= ) look ahead and behind, and * and + repeat. Two symbols are specific to rulesets: ◆ is the code point being tested, and ⟨name⟩ refers to another rule.

hyphen-minus-disallowed MSR default 5891

RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS

( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) )
Structure
  • ( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) ) choice
    • (?<= ^ ) ◆ rule
      • (?<= ^ ) look-behind
        • ^ start
      • ◆ anchor
    • ◆ (?= $ ) rule
      • ◆ anchor
      • (?= $ ) look-ahead
        • $ end
    • (?<= ^ . . U+002D ) ◆ rule
      • (?<= ^ . . U+002D ) look-behind
        • ^ start
        • . any
        • . any
        • U+002D char
      • ◆ anchor
Referenced by 1 definition
  • negative context of U+002D

leading-combining-mark MSR default 5891

RFC 5891 restrictions on placement of combining marks

^ ({gc:Mn} ∪ {gc:Mc})
Structure
  • ^ start
  • ({gc:Mn} ∪ {gc:Mc}) union
    • {gc:Mn} class
    • {gc:Mc} class
Referenced by 1 definition
  • action 1 (invalid)

pangkon-disallowed 101

To prevent below 2-Base stacking, a U+A9C0 PANGKON following a consonant or independent vowel must not occur twice in a row if then followed by a third consonant or independent vowel.

( ({consonant} ∪ {vowel}) {virama} ){2} ({consonant} ∪ {vowel})
Structure
  • ({consonant} ∪ {vowel}) {virama}{2} rule
    • ({consonant} ∪ {vowel}) union
      • {consonant} class
      • {vowel} class
    • {virama} class
  • ({consonant} ∪ {vowel}) union
    • {consonant} class
    • {vowel} class
Referenced by 1 definition
  • action 2 (invalid)

aksara-rekan 101

The Aksara Rekan sequences

( {aksara-rekan-base} U+A9B3 )
Structure
  • {aksara-rekan-base} U+A9B3 rule
    • {aksara-rekan-base} class
    • U+A9B3 char
Referenced by 4 definitions
  • rule follows-cons-aksara-rekan-med-vowel-dep
  • rule follows-cons-aksara-rekan-med-vowel
  • rule follows-cons-aksara-rekan-vowel
  • rule follows-cons-aksara-rekan

follows-A9BA-or-A9BB 101

U+A9B4 must follow U+A9BA or U+A9BB.

(?<= [A9BA-A9BB] ) ◆
Structure
  • (?<= [A9BA-A9BB] ) look-behind
    • [A9BA-A9BB] class
  • ◆ anchor
Referenced by 1 definition
  • context of U+A9B4

follows-cons-aksara-rekan-med-vowel-dep 101

Various signs (U+A981, U+A982, U+A983) must follow a consonant, an aksara rekan sequence, a medial consonant, an independent vowel, or a dependent vowel.

(?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {medial-cons} │ {vowel} │ {dep-vowel} ) ) ◆
Structure
  • (?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {medial-cons} │ {vowel} │ {dep-vowel} ) ) look-behind
    • ( {consonant} │ ⟨aksara-rekan⟩ │ {medial-cons} │ {vowel} │ {dep-vowel} ) choice
      • {consonant} class
      • ⟨aksara-rekan⟩ rule
      • {medial-cons} class
      • {vowel} class
      • {dep-vowel} class
  • ◆ anchor
Referenced by 9 definitions
  • context of U+A981
  • context of U+A982
  • context of U+A982 U+A99F
  • context of U+A982 U+A9A0
  • context of U+A982 U+A9A1
  • context of U+A982 U+A9A4
  • context of U+A982 U+A9B0
  • context of U+A982 U+A9B1
  • context of U+A983

follows-cons-aksara-rekan-med-vowel 101

A dependent vowel other than U+A9B4 must follow a consonant. an aksara rekan sequence, a medial consonant, or an independent vowel.

(?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} │ {medial-cons} ) ) ◆
Structure
  • (?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} │ {medial-cons} ) ) look-behind
    • ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} │ {medial-cons} ) choice
      • {consonant} class
      • ⟨aksara-rekan⟩ rule
      • {vowel} class
      • {medial-cons} class
  • ◆ anchor
Referenced by 5 definitions
  • context of U+A9B6
  • context of U+A9B8
  • context of U+A9BA
  • context of U+A9BB
  • context of U+A9BC

follows-cons-aksara-rekan-vowel 101

A U+A9C0 PANGKON must follow a consonant, an aksara rekan sequence, or an independent vowel.

(?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} ) ) ◆
Structure
  • (?<= ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} ) ) look-behind
    • ( {consonant} │ ⟨aksara-rekan⟩ │ {vowel} ) choice
      • {consonant} class
      • ⟨aksara-rekan⟩ rule
      • {vowel} class
  • ◆ anchor
Referenced by 1 definition
  • context of U+A9C0

follows-cons-aksara-rekan 101

Medial consonants must follow a consonant or an aksara rekan sequence.

(?<= ( {consonant} │ ⟨aksara-rekan⟩ ) ) ◆
Structure
  • (?<= ( {consonant} │ ⟨aksara-rekan⟩ ) ) look-behind
    • ( {consonant} │ ⟨aksara-rekan⟩ ) choice
      • {consonant} class
      • ⟨aksara-rekan⟩ rule
  • ◆ anchor
Referenced by 3 definitions
  • context of U+A9BD
  • context of U+A9BE
  • context of U+A9BF

Actions

Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.

Actions in precedence order
# Disposition Conditions
1 invalid label matches leading-combining-mark 5891 by default, labels with leading combining marks are invalid MSR default
2 invalid label matches pangkon-disallowed 101 any label with disallowed pangkon placement is invalid
3 invalid any variant is out-of-repertoire-var any variant label with a code point out of repertoire is invalid MSR default
4 blocked any variant is blocked any variant label containing blocked variants is blocked MSR default
5 valid any label default catch all (default action) MSR default

References

RefSource
0 The Unicode Standard, Version 1.1
Code points cited were originally encoded in Unicode Version 1.1
10 The Unicode Standard, Version 5.2
Code points cited were originally encoded in Unicode Version 5.2
101 Section 7.4, “Summary of the WLE rule” in “Javanese Script Reference Label Generation Rules for Second-Level Domain Names”, 13 August 2026, https://www.icann.org/en/system/files/files/proposal-javanese-second-level-13aug26-en.pdf
110 Darusuprapta. (2002). Pedoman Penulisan Aksara Jawa. Yayasan Pustaka Nusatama
111 Koemisi Kasusatran. (1926) Wawaton Panjeratipoen Temboeng Djawi Mawi Sastra Djawi Dalasan Angka. Landsdrukkerij
112 W.J.S. Purwadarminta. (1931). Serat Mardikawi. De Bliksem
113 Tim Kongres Aksara Jawa I. (2021). Tata Tulis Aksara Jawa. Dinas Kebudayaan (Kundha Kabudayan) Daerah Istimewa Yogyakarta
5891 RFC 5891, Internationalized Domain Names in Applications(IDNA): Protocol https://tools.ietf.org/html/rfc5891