Add Braille and Tones extension points to avoid monkey patching by API consumers (#14503)
Replaces #9917
Summary of the issue:
Tools like NVDA remote that need to intercept speech and braille output currently rely on monkeypatching to do this.
Description of user facing changes
It is no longer possible to override the display size of the braille handler by setting braille.handler.displaySize. It is also no longer possible to enable/disable the handler by setting braille.handler.enabled.
Description of development approach
Added the following extension points:
inputCore.manager.decide_executeGesture: Decider for filtering gestures
tones.decide_beep
nvwave.decide_playWaveFile
braille.handler.pre_writeCells
braille.handler.filter_displaySize
braille.handler.decide_enabled
braille.handler.displayChange
braille.handler.displaySizeChanged
This means that NVDA Remote and similar tools can at least drop all monkeypatching related to braille, playing tones and waves. Speech is a separate subject and will be handled in a follow up.