Why some braille contractions only work at the start or end of a word
Braille Guide

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.

Grade 2 braille contraction position rules showing where part-word contractions can and cannot appear in a word
Part-word contraction position rules at a glance
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.

Why “ing” never actually fires in this engine

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.

starting → st, ar, t, in, g
not st, ar, t, ing
morning → m, o, r, n, in, g
not m, o, r, n, ing

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.

Inside the word
Someday

“day” contracts starting at position 4, well into the word.

Inside the word
Birthday

“day” contracts at position 5 rather than at the word’s start.

Inside the word
Payday

“day” contracts at position 3.

Inside the word
Monday

“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.

Open Braille Translator

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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *