Why some braille contractions only work at the start or end of a word
Several part-word contractions in grade 2 braille, the groupsigns that apply inside a word rather than to the whole word at once, carry hard-coded rules about exactly where in a word they’re allowed to appear. These rules aren’t the same across categories. Some are blocked only from a word’s very start. Some are blocked from both the start and the end, valid only in a word’s true interior. And 1 specific contraction, remarkably, can never actually fire at all in this engine, not because anyone decided to disable it, but because of how the categories are checked against each other. Every claim here was traced directly through the part-word parsing logic and confirmed by running real words through that exact sequence of checks, not assumed from how these categories are typically described.
Final-letter groupsigns are barred from a word’s very start
The 12 final-letter groupsigns, covered in full in our grade 2 contractions reference, come with an explicit rule in the code, they cannot fire at position 0, the very first character of a word. This matters in practice whenever a final-letter groupsign’s letters happen to also appear at the start of a different word. “Handful” ends in f-u-l, and since that “ful” sits at position 4, well past the start, it correctly fires as the final-letter groupsign. “Fulfill” also contains the letters f-u-l, at the very beginning this time, and there the same rule correctly blocks it, “fulfill” falls through entirely to plain letters instead. Same 3 letters, different position, different outcome, and the rule exists specifically so a word that happens to start with what looks like a common ending doesn’t get misread as if it were.
Lower groupsigns split into 3 completely different position rules
This is where the system gets genuinely more complicated than a single blanket rule. The 10 lower groupsigns don’t all follow the same restriction, they split into 3 distinct behaviors depending on which specific sign it is.
| Category | Signs | Where allowed | Example |
|---|---|---|---|
| Final-letter groupsigns | ful, tion, ness, sion, ity, less, and more |
Anywhere except the very start | handful “ful” at position 4 |
| Lower: prefix-only | be, con, dis |
Position 0 only | consider “con” at position 0 |
| Lower: interior-only | ea, bb, cc, ff, gg |
Only when letters exist on both sides | bread “ea” in the middle |
| Lower: unrestricted | en, in |
Anywhere in the word | ingest “in” at position 0 |
| Strong groupsigns | ch, sh, th, wh, ou, st, ar, er, gh, ed, ow, plus dual-function signs |
Anywhere, except ble and ing at position 0 |
strength “st” in the middle |
| Initial-letter contractions | day, time, part, name, right, and more |
Anywhere a matching substring appears | someday “day” at position 4 |
Be, con, and dis are prefix-only
They can only fire at position 0, the true start of a word, and only if the word is longer than the sign itself. “Consider” begins with con, position 0, word longer than 3 letters, so it fires correctly. “Falcon” also contains the letters c-o-n, but at position 3, not the start, so the same rule correctly blocks it there, “falcon” ends up spelled out with no contraction at all in that spot.
Ea, bb, cc, ff, and gg are interior-only
This is stricter than it sounds, they’re blocked at both the start and the end of a word, valid only when there are actual letters on both sides. “Bread” and “dream” both contain ea in a genuinely interior position, letters before and after, so it fires correctly in both. “Eat” has ea sitting at the very start, blocked. “Sea” has ea sitting at the very end, also blocked. All 3 words contain the identical letter pair, and the rule produces 3 different outcomes depending purely on where that pair sits.
En and in carry no position restriction at all
They’re valid anywhere a match occurs, start, middle, or end. “Ingest” gets in contracted right at the beginning without any issue, since this particular sign was never restricted the way be, con, and dis are.
Strong groupsigns are almost unrestricted, except 2 signs
Most of the 18 strong groupsigns, ch, sh, th, wh, ou, st, ar, er, gh, ed, ow, and the 5 dual-function signs and, for, of, the, and with, can appear anywhere in a word with no position restriction whatsoever. Exactly 2 signs in this category are the exception, ble and ing, which are specifically blocked from position 0 and nowhere else. That’s a narrow, deliberate carve-out inside a category that’s otherwise wide open, and it sets up the most surprising finding in the whole system.
The strong groupsign that can never actually fire
Here’s the part worth sitting with. In is a lower groupsign with zero position restriction, valid anywhere. Ing is a strong groupsign, and lower groupsigns are checked before strong groupsigns in the engine’s fixed sequence. Since the letters “in” are a strict prefix of the letters “ing,” any position in a word where “ing” could possibly match is also, by definition, a position where “in” matches. Because lower groupsigns get checked first and in has no restriction blocking it, in will win that check every single time, before the engine ever reaches the strong groupsign table to see that “ing” was also sitting right there.
This isn’t a hypothetical edge case, it’s the outcome for every single word ending in “ing” that doesn’t get blocked some other way. “Starting” doesn’t come out as st, ar, t, ing, the 4-contraction breakdown someone applying a simple longest-match rule might expect. It comes out as st, ar, t, in, g, the trailing g left as a plain, uncontracted letter, because “in” claimed those 2 characters first and the engine moved on before “ing” was ever checked. “Morning” shows exactly the same thing, m, o, r, n, then in, then a bare g at the end. The “ing” entry sitting in the strong groupsigns table, its own dot pattern and everything, is structurally unreachable in this implementation. It isn’t a length contest decided in favor of the shorter match, it’s an order-of-checking problem, in gets asked first and always says yes.
Initial-letter contractions aren’t actually restricted to a word’s start
Given how strict some of the rules above are, it’s worth being precise about a category that has no equivalent restriction at all, despite its name suggesting otherwise. The initial-letter contractions, day, time, part, name, right, and the rest covered in our contractions reference, have no coded requirement that they only apply at position 0. They fire wherever a matching substring shows up during the scan.
“day” contracts starting at position 4, well into the word.
“day” contracts at position 5 rather than at the word’s start.
“day” contracts at position 3.
“day” contracts at position 3.
In every one of these, “day” is being used as a contraction nowhere near the actual start of the overall word, which is a genuine mismatch between what the category is called and what the code that implements it actually checks for.
Why this matters beyond trivia
None of this changes what a correctly formatted grade 2 output should look like, this translator applies these exact rules consistently, which is the entire point. What it does show is that grade 2 braille isn’t governed by 1 uniform principle like “longest match always wins” or “these signs only work at the start.” It’s a set of specific, sometimes narrow, sometimes surprising rules that interact with each other in ways that produce results a simplified mental model wouldn’t predict, the disappearing “ing” being the clearest example of that.
See it happen with your own words
See the contraction rules in action
Type “starting” or “morning” into our braille translator in grade 2 mode and look closely at the individual cells, you’ll see the in groupsign and a separate plain g rather than a single ing contraction, exactly as described here.
Frequently asked questions
Because “in,” a lower groupsign with no position restriction, is checked before strong groupsigns and matches those same 2 letters first. The engine takes that match and moves on before it ever checks whether “ing” would also have matched at that position.
No. Final-letter groupsigns are blocked only from a word’s start. Some lower groupsigns are blocked everywhere except a word’s true interior. Others have no restriction at all. Each category follows its own specific rule.
No, despite being called an initial-letter contraction. It can fire anywhere a matching substring appears during the scan, including well inside a longer word like “someday” or “birthday.”
“Con” is a prefix-only sign that can only fire at a word’s true start. In “consider,” it sits at position 0 and fires correctly. In “falcon,” it sits partway through the word, so the same rule blocks it there.
It falls through to whatever the next applicable rule is, another contraction category if one matches at that position, or plain, uncontracted letters if nothing else does.
