[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search

CLDR Ticket #10904(design)

Opened 10 months ago

Last modified 4 weeks ago

PRI #367: Automated punctuation spacing

Reported by: Marcel Schneider <charupdate@…> Owned by: mark
Component: keyboards Data Locale:
Phase: dsub Review:
Weeks: Data Xpath:


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.


Change History

comment:1 Changed 10 months ago by Marcel Schneider <charupdate@…>

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):

comment:2 Changed 9 months ago by kristi

  • Owner changed from anybody to mark
  • Status changed from new to design

comment:3 Changed 9 months ago by mark

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.

comment:4 Changed 9 months ago by mark

  • Milestone changed from UNSCH to upcoming

comment:5 Changed 4 weeks ago by pedberg

  • Milestone changed from upcoming to UNSCH

CLDR 34 BRS closing item, move all upcoming → UNSCH

comment:6 Changed 3 weeks ago by mark

  • Component changed from keyboards to docs-spec

comment:7 Changed 3 weeks ago by mark

  • Component changed from docs-spec to keyboards

Add a comment

Modify Ticket

as design

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.