Skip to content

New text symbol processing framework #332

@nvaccessAuto

Description

@nvaccessAuto

Reported by aleksey_s on 2009-06-15 19:20

Rationale

currently, punctuation processing in NVDA is very simple and quite limited. Limitations of current system are:

  1. No punctuation levels. Users need to have ability to change punctuation level for improving experience in performing daily tasks (e.g. "none" level when reading books, "some" for things like smilies when browsing, chatting and reading mail, "all" for programming).
  2. Changing the certain label for punctuation mark or adding newis difficult. Currently, to add new punctuation mark or edit label of existing mark user needs to edit NVDA sources or language file appropriately.
  3. The set of punctuation marks and their labels is hard-coded and there is no way to switch between profiles. Example where it can be usefull are some languages (especially Russian and Ukrainian) which have too long punctuation labels by default. It is no problem for not experienced user, who deals not so often with punctuation, but is very unconfortable and nasty for people, who deals with textual data as work basis (e.g. programming). There can be two profiles for this reason: "default" and "brief".
  4. Switching language of punctuation labels isn't possible. User can easily switch synthesizers for different languages, but reading when text and punctuation is in different languages is atleast not confortable or even not acceptable in cases, where languages use different alphabets so synthesizer don't know how to handle the text, nvda replaces punctuation marks with. This one is related to runtime language switching in general, which can be a different issue.

So new punctuation handling system need to be developed to eliminate existing bariers.

expected features

  • gui to manage user-defined punctuation
  • punctuation levels and gui to manage them
  • besides to default, "brief" punctuation labels atleast for russian

implementation

template
The current speechDictionaries system may be extended to textProcessing module which will handle speech dicts, punctuation, indentation, char repetition and other stuff
...more detailed info about implementation

need to answer

  1. p 2.
    • Do user really need edit punctuation labels bundled with nvda by default?
    • if not, then user may be able only to add custom punctuation marks to process but not edit existing, which simplify things a bit
  2. p 4.
    • Is it required for all languages?
    • Are more than two profiles required?
    • If not, we can generalize this for all languages and just have "default" and "brief" label for all punctuation marks.
  3. what about translators?
    • we want not change things for them while possible
    • so have punctuation labels in external file (as with buildin.dic) is bad idea
    • at minimum, "brief" labels will be added to translation queue
    • how to handle two punctuation labels within gettext?
    • a sort of _("point") _("short_point")
    • then need translation also for english
    • i feel gettext is not for such things

Blocking #43, #271, #454, #919

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions