Additionally to the features described in tickets [#10851|] and [#10898|], LDML is to support keyboard layouts with automated punctuation spacing, for the fr-FR locale among others. Any eligible punctuation is mapped on two positions on the same key. On the most accessible one, it forms a sequence with the appropriate space character. On the second one, it is mapped in isolation. The Programmer toggle alters those keys by putting the isolated punctuation in the foreground.
== Punctuation spacing is part of orthography ==
In most French locales, a number of big punctuations are spaced off from the word and sentence they belong to. The following extra spaces are added:
question mark: NNBSP before (no space if preceded by a ? or !);
exclamation mark: ditto;
colon: NNBSP or NBSP before;
semicolon: NNBSP before;
double opening angle quotation mark: NNBSP (or NBSP) after;
double closing angle quotation mark: NNBSP (or NBSP) before.
single opening angle quotation mark: NNBSP (or NBSP) after;
single closing angle quotation mark: NNBSP (or NBSP) before.
When punctuation spacing is not automated, most users hit the spacebar of the computer keyboard like on a typewriter. Punctuations spaced this way are at risk of ending up on another line than the word they belong to. Very few users are prevented by this oddity from keeping spacing the punctuations.
== Punctuation spacing is not a matter of higher-level protocols ==
Software is usually not localized to add or replace space characters around punctuation. Text processing software is an exception. But input editors of current word processors handle NBSP only, partly due to incomplete fonts and lack of proper font fallback (that would include return to previous font).
U+0020 SPACE is not specified as being non-breakable when spacing a punctuation, nor is it specified as being narrow and fixed-width in this context. Spaces around punctuation for publishing are adjusted by a somewhat sophisticated search-and-replace. But many end-users are still unable to input a proper digital representation of French in most environments.
== Punctuation spacing is a matter of proper keyboarding ==
The specification of the French standard keyboards includes the ability to properly input French without the assistance of an input editor. The drivers must be shippable with all major operating systems.
Notably the French ergonomic BÉPO layout is optimizing the synergy between punctuations and NNBSP (formerly NBSP) by mapping most of both on the same level. That is unfeasible on legacy-compatible layouts due to the duplicate mapping of U+0020 SPACE on both Base and Shift level of the spacebar.
For legacy-style layouts, the proposed solution is to map the related punctuations in the Shift shift state on eight keys as part of sequences with NNBSP, to map them without space in the Shift + AltGr/Option shift state of the same keys, and to map the ASCII punctuations among them (not the angle quotation marks) without space also in the Shift (and for two, in the Base) shift state on their keys in Programmer mode, that facilitates coding but also writing English and other natural languages thanks to providing typographic punctuations and dead keys nearly the same way as the default French mode while prioritizing ASCII characters.
See on the related page on dispoclavier.com (in French):
There was a lot of feedback on this PRI. The keyboard group has made some modifications based on feedback, but decided to leave other features for consideration for a future version.
CLDR 34 BRS closing item, move all upcoming → UNSCH