Skip to content

Decide How the Prose Gate Widens Past the Latin Part of the Recorded-Name Rule #2170

Description

@ptr727

Problem

The charset rule says a letter in a recorded name keeps its actual spelling, and it says so for every script. The prose gate implements only the Latin part of that rule. It accepts a Latin-named letter that is not a compatibility form, plus a U+0300-U+036F diacritic carried by a letter. That split is deliberate, per the maintainer's answer on #2146. Two gaps remain between the rule and the gate:

  1. Other scripts. A recorded name spelled in Greek, Cyrillic, or any non-Latin script is reported as charset-unknown, so the rule allows what the gate refuses.
  2. Latin-named lookalikes of ASCII. Some Latin-named letters look like ASCII letters or punctuation and pass the gate, for example U+0251 LATIN SMALL LETTER ALPHA, U+0261 LATIN SMALL LETTER SCRIPT G, U+0131 LATIN SMALL LETTER DOTLESS I, and the small capitals. Before Accept Letters in Recorded Names in the Charset Rule and Prose Gate #2100 they were reported. Some punctuation-like letters are real letters in some orthographies, U+01C3 and U+0294 among them, so a blanket deny set would report real names.

Constraints

The #2100 lane found that each attempt to enumerate widening produced new review findings. Accepting all of category L let Cyrillic homoglyphs and fullwidth forms through. Accepting every nonspacing mark after a letter let variation selectors through. A design that works needs a way to tell a name from a word other than by its characters, or an explicit decision to accept the lookalike risk.

Options to decide

  1. Leave the gate at the Latin subset and state that as permanent. This is the lowest cost, but non-Latin names keep needing an escape.
  2. Add a per-line or per-file allow marker for a recorded name, so any script passes where the author declares a name.
  3. Widen by script with a confusables check, such as Unicode TR39 skeletons against the surrounding ASCII.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    pre-existingReview finding classed pre-existing per local-strict-review Disposing of FindingsproseA defect in rule or procedure text

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions