Your work is interesting.
and what about the translations?
the "tonysEnhancements" add-on is not ready to be translated.
What do you intend to do about it?
Hello NVDA community,
I have implemented a lot of new features
in my add-ons since my last announcement here more than a
year ago, so I would like to share all these new features –
hopefully you guys will find some of them useful. I present
my new add-ons: Phonetic punctuation and Tony’s
enhancements, as well as I added many new features to
BrowserNav. In the end of this email I also mention my other
add-ons, just in case someone hasn’t heard of them, they
have only been updated with bugfixes. This is a pretty long
email, so I structured it with headings.
Please download latest versions of my
add-ons directly from their respective github pages – the
links are provided in this email.
Phonetic punctuation
·
Github page
·
Short audio demo
·
Download latest version
This add-on allows you to substitute
punctuation marks, and any other part of speech configured
by a regular expression with an auditory icon (custom
sound). Most common use of phonetic punctuation would be for
writing code, where it is essential to know all the
punctuation marks, but other uses can include: replacing the
word “blank” with a sound, replacing timestamps or other
frequently repeated text with a sound, etc. Configuring
phonetic punctuation requires knowledge of regular
expressions.
Thanks to Kara Goldfinch for contributing
auditory icons for some punctuation marks!
BrowserNav
·
Github page
·
Download latest version
BrowserNav is a collection
of improvements to user experience in browsers. I added
quite a few new features to it since last release.
Horizontal indentation using tones
You can configure BrowserNav to express
horizontal indentation of a currently focused element using
tone – similar to a built in NVDA feature of reporting
indentation with tones in text documents. This allows you to
better understand the layout of the page. For example, it
allows you to hear malformed HTML tables, that is when NVDA
doesn’t see a table as a real table, yet the elements are
still aligned in a tabular fashion on the screen. It also
greatly simplifies browsing hierarchical trees of comments
on websites such as reddit, facebook, hacker news – now the
tone would indicate the level of the comment.
Please note that there are also commands
to find next/previous element with the same horizontal
indentation, which you might find handy.
Crackling for QuickNav commands
In all my add-ons crackling is an
indicator of how far we have just jumped in the document
when some navigational keystroke is pressed. I implemented
this feature for built-in NVDA QuickNav commands as well.
Now when you press H for next heading, you can hear
crackling, and judging by the length of such crackling you
can quickly and intuitively figure out whether the next
heading was close by or you just jumped over a lot of text.
Browser marks
Think of this feature as regular
expression enabled bookmarks for browser. You can configure
a single regular expression, that can be arbitrary largeand
include all the potential bookmarks
on all your webpages, and then you can quickly jump to
next/previous browser mark using J or Shift+J commands in
browse mode. For example, as a frequent Amazon shopper, I
like to be able to quickly jump to things like “5 items in
cart” and “your orders”. So I have configured my browser
mark regular expression to be:
(^\d+ items? in cart$|^Your orders$)
Please note that the regular expression
must match the whole paragraph exactly, hence be careful
with ^ and $ regular expression qualifiers. Please also note
that this regular expression will apply to all web pages and
all browsers, so be as specific as possible.
Accessibility for semi-accessible edit boxes
Many web pages these days are using a
fancy HTML text edit component called Monaco – it provides
syntax highlighting for sighted people, but it has one major
flaw: it is not accessible, that is the edit box appears
empty. For example Jupyter and hacker rank use such a text
editor among others. You can still retrieve the contents of
the edit box by pressing Control+A Control+C and then
pasting it to the editor of your choice. However, repeating
this every time is tedious, therefore I automated this
process. Now you can navigate to said edit box and simply
press NVDA+e to view or edit it.
Tony’s enhancements
·
Github page
·
Download latest version
This is a hodgepodge of small
improvements to various parts of NVDA, not logically
connected in any way. All the options are disabled by
default and need to be enabled manually in the preferences
window.
NVDA volume
Allows to adjust the volume of all the
NVDA sounds, including beeps and speech.
Automatic language switching
Some languages use non-Latin script, e.g.
Russian, Arabic, Chinese, etc. There is no reason why NVDA
wouldn’t be able to automatically switch synthesizer
language between English and those foreign languages. Now I
bring this feature to live. Automatically switching between
two Latin-based languages is not supported at this time.
Please note that your synthesizer must support all these
languages for this feature to be effective.
Enhanced table navigation commands
I added commands like
Control+Alt+Home/End/PageUp/PageDown to jump to first or
last row or column. I also added keystrokes to jump to 1..10th
row or column, please check add-on documentation for these
shortcuts.
Enhanced move by word commands
Most text editors support
Control+LeftArrow/RightArrow commands for word navigation.
However the definition of the word changes from one program
to another. This is especially true of modern web-based text
editors, such as Monaco. NVDA should know the definition of
word in given program in order to speak words correctly. If
NVDA doesn't know the exact definition, then either words
are going to be skipped, or pronounced multiple times.
Moreover, some web-based text editors position the cursor in
the end of the word, instead of the beginning, making
editing much harder for visually impaired users. In order to
combat this problem I have created enhanced word navigation
commands, that take the word definition from Notepad++ and
they do not rely on program's definition of words, but
rather parse lines into words on NVDA's side. The
Control+LeftArrow/RightArrow gesture is not even sent to the
program, thus ensuring the consistency of the speech.
This option overrides default
Control+LeftArrow/RightArrow commands in NVDA.
Real-time console output
If you work with command line
applications that print out a lot of logs, it might be not
the best behavior for NVDA to read out all these logs line
by line, since NVDA can be speaking much slower than those
lines are being printed, thus NVDA might be speaking some
lines that were printed a minute ago. I modified the way
NVDA speaks command line output to be more realtime. The
basic logic is like this: if a new line appears on the
screen and NVDA is currently speaking something that was
shown on the screen more than a second ago, then we
interrupt current utterance and speak the most recent line.
Speaking output this way better represents what’s going on
in command line window in real time. There is also an option
to beep on every update in command line.
Dynamic keystrokes
I call a keystroke dynamic if it changes
the state of an application. Often times we’d want NVDA to
speak the updated change automatically, but NVDA does
nothing for keystrokes that it’s not aware of. An example of
such a keystroke would be F2 in Notepad++ that jumps to the
next bookmark – you would want NVDA to speak the current
line automatically. Many other editors have such keystrokes
as well. Now you can configure the list of keystrokes and
NVDA will automatically speak current line after them.
Please check github page for more information.
Suppressing unwanted “unselected” messages
If certain text is selected in a text
editor, and in the next moment no longer selected, NVDA
would say “unselected” and then the original text that was
selected. In certain situations this is not a desirable
behavior. For example if you have some text selected, and
then you press Control+Home, to go to the very beginning of
the document, NVDA would first speak the first line of the
document, then “unselected”, then the original selection. I
felt this was annoying, so I found a way to suppress this
message, while still keeping the “unselected” message when
you indeed unselect your selection by character, or word,
etc
Preventing double insert keystroke
If you press insert key twice
accidentally, it would trigger insert mode in your
application. Since Insert is a special key in NVDA, this
behavior cannot be disabled using input gestures dialog in
NVDA, yet this was happening too often to me, so I wrote a
function to disable double insert key backstroke. If you
still would like to toggle insert mode, you can do so by
pressing NVDA+F2, and then insert key.
Insert mode detector
As another layer of defense against
accidental insert mode I implemented this feature. It
monitors current line of text and looks at how it changes
when you type alphanumeric keys. If it seems like characters
are being overwritten, it will beep on every character.
Similar to built-in caps lock on warning beep.
Fixing a bug when focus gets stuck in the taskbar when
pressing Windows+Numbers
There is a bug in Windows 10, and
possibly in other versions. When switching between
applications using Windows+number shortcut sometimes the
focus gets stuck in the taskbar area instead of jumping to
the window being switched to. So I implemented a workaround.
The add-on detects this situation and plays a short
low-pitch beep when this situation is detected, then the
add-on fixes it automatically by bringing focus to the
desired application.
TextNav
·
Github page
·
Audio demo
·
Download latest version
TextNav allows you to
quickly find the beginning of article on a web page, and
also skip over junk HTML elements, such as menus, images,
ads, etc.
SentenceNav
·
Github page
·
Download latest version
Allows you to navigate
text sentence-by-sentence or phrase-by-phrase, as opposed to
by word, character or line.
IndentNav
·
Github page
·
Download latest version
This add-on improves
navigation around source code files for programming by
allowing to find lines with the same/greater/smaller
indentation level. But it also can be used for structured
text files, where structure is expressed by the indentation
level.
Bluetooth Audio
·
Github page
·
Download latest version
Improves sound quality for
those who use NVDA with Bluetooth or other wireless audio
devices by constantly playing silent sound.
AudioChart
·
Github page
·
Download latest version
AudioChart allows you to sonify time
series in Microsoft Excel.
Thanks for reading this! Let me
know what you think about these new features!
--Tony