Skip to content

Change routingIndex to cellIndexes on BrailleDisplayGesture and use multiRouting #20001

@LeonarddeR

Description

@LeonarddeR

Related issues, PRs or discussions

none

What is the current state of the codebase?

braille.BrailleDisplayGesture defines the routingIndex attribute used for routing to specific cells with a braille display when pressing routing keys.

Why are changes required?

There are several issues with this approach/wording:

  1. The scope of routing is too small. For example, Handy Tech displays have the so called Active Tactile Control feature that let's you register what/where you're reading. In that case, it makes sense to generate a braille display gesture with the current reading index or indexes. Using cellIndexes makes clear that the gesture has to deal with the index of a specific cell, whether it is routing or other behavior related to that particular cell, such as touching it.
  2. Using a singular index has several disadvantages, most notably that pressing multiple routing keys causes unspecified behavior.

What technical changes are required?

  1. Create a new list property called cellIndexesonBrailleDisplayGesture`
  2. Deprecate the older routingIndex property using a getter/setter. routingIndex is always an instance property, so deprecating it on a getter/setter behavior should ensure backwards compatibility. setter with value should set cellIndexes = [value], getter should return the first value of cellIndexes
  3. Ensure that all builtin drivers set cellIndexes instead of routingIndex, let them appropriately deal with multiple routing buttons pressed. When multiple routing buttons are pressed, use the multiRouting id instead of the routing id.
  4. Bonus, create a script that lets you select text using multi routing, e.g. pressing routing buttons for cell 1 and cell 4 selects the word from cell 1 up to and including 4.

Are the proposed technical changes API breaking?

No

Are there potential risks or issues with the proposed implementation?

Backwards compatibility should be considered carefully, as well as testing should be performed with the braille display drivers. Multi routing should only be implemented for displays that can be tested.

Metadata

Metadata

Assignees

Labels

audience/nvda-devPR or issue is relevant to NVDA / Add-on developerscomponent/braille-display-driversp5https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions