I can help managing your add-ons, except on the
current translation method...
I haven't yet figured how to deal with it...
I can't promiss I will act immediatly in all times,
but I will try to do it as soon as possible...
Happy new year, everyone!
I present new features and
improvements to my add-ons. This is a pretty long
email, so I marked sections as level 1 and level 2
headings for ease of navigation. Any feedback and
suggestions are welcome!
The most exciting new
feature is support of bookmarks. You can now
configure bookmarks and this simplifies navigation
around websites that you frequently use. Bookmarks
can be configured either for a specific URL or for
the entire domain. Bookmark itself can be configured
either as matching text on the page, or a regular
expression. There are many more options to customize
bookmarks, please refer to github page for a full
list of options.
There are four types of bookmarks
Once they are configured, you can
find and jump to them by pressing either J or
Shift+J in browse mode. BrowserNav comes with
default configuration that you can use as an example
of configuring bookmarks, and that example includes
some QuickJump bookmarks for amazon.com: you can
jump to “5 items in cart”, “Your Orders”, “4.5 out
of 5 stars” – these are just examples of information
that I often need to find on Amazon pages while
shopping, but you can of course configure your own
These are not really bookmarks,
but rather you can configure BrowserNav to skip
certain text while navigating either by paragraph
(with Control+Up/Down) or by line (with Up/Down).
Most common example of this is skipping blank lines
– and this one is included in the default
configuration. Other examples can include skipping
timestamps or frequently repeated elements on the
webpage (think of repeating buttons on Facebook
website: Reply, React, Like, …). SkipClutter mode
can be turned off temporarily when you do want to
access those elements by pressing / or Control+/.
These are similar to
QuickJump bookmarks, but instead of jumping to
bookmark, you can click buttons or links without
moving your cursor. For example, on youtube.com you
might want to have an easy way to play/pause video.
In fact this QuickClick bookmark is included in the
default configuration for reference. So, you just
need to press Alt+J to click all QuickClick
bookmarks on the page. Another example of where I
find QuickClick especially useful is expanding
collapsed elements of the page, e.g. on Facebook you
might want to automatically expand links “See more”,
“View 5 more comments”, etc.
Many websites (e.g., reddit,
hacker news) show user comments as a tree where each
successive level of reply is indented more and more
to the right. Hierarchical bookmarks is the most
convenient way to browse such comment trees for
screenreader users. BrowserNav can announce the
level of current comment, or alternatively, you can
jump to next/previous comment of a given level,
similar to built-in function of jumping to heading
of given level. You just need to capture some
element of a comment in a bookmark (such as upvote
or downvote buttons) and BrowserNav will
automatically compute levels based on horizontal
offset of each match. I have included sample
configuration for hacker news and old reddit. You
can try it yourself once you have BrowserNav v2.2
· Old reddit:
· Hacker news:
· Alt+` or
Alt+Shift+`: jump to next/previous comment and
announce its level.
· Alt+1 or
Alt+Shift+1: jumpt to next/previous comment at level
· Alt+2 or
Alt+Shift+2: jumpt to next/previous comment at level
· Alt+number or
Alt+Shift+number: jumpt to next/previous comment at
Please note that in both
reddit and hacker news the bookmark also matches the
original post. As a result, on reddit original post
corresponds to level 2, so all the comments have
levels 1,3,4,5 …. Skipping level 2.
Configuring websites and bookmarks
Press NVDA+J to open
BrowserNav popup menu. Here you can configure
websites and bookmarks. For ease of use I added
options to create a new entry for current website,
and create a new bookmark from current paragraph.
All websites and bookmarks
can also be configured via NVDA > Preferences
> Settings dialog.
There are a few options that can
be configured on per website level:
· Block focus
events: some websites misuse focus events: e.g. they
focus some elements when trying to scroll, thus
making the website hard or impossible to use for
screenreader users. You can disable handling of
focus events for such websites. In this case focus
events will be ignored and your cursor will not jump
· Block live region
announcements. Similarly, some websites misuse live
regions. BrowserNav allows to selectively block
· Auto QuickClick.
Once you configured QuickClick bookmarks on a
website, you can tell BrowserNav to click those
bookmarks automatically when website is fully
Vertical navigation (via
NVDA+Alt+Up/Down commands) now works much faster in
Chromium-based browsers and Firefox.
Recap of other BrowserNav functions
navigation: allows to find objects on a web page
that are directly underneath by pressing
· Navigation by font
size: allows to find text written in the same font
size or font style.
· More QuickNav
commands: jump to next menu(Z), tab(Y), dialog(P),
· I am aware of
Placemarkers add-on existence. BrowserNav bookmarks
is however different in many ways: more flexible
website definition, more flexible bookmark
definition, more functionality around different
types of bookmarks. I know NVDA community is
typically wary of add-ons that are similar in
functionality, but I didn’t have any intention to
compete against PlaceMarkers. The function of
regular expression search was in BrowserNav since
many years ago and developing proper bookmarks was a
natural extension of it. It would also be totally
impractical for me to upgrade Placemarkers add-on,
since the changes that I implemented would require
rewriting probably 90% of Placemarkers, so this is
· I can split off
bookmarks into a separate add-on if there is enough
interest. As long as community doesn’t mind given
concerns of being too similar to Placemarks add-on.
Tony’s Enhancements v1.13
This add-on is a
hodgepodge of different NVDA improvements and this
time I added a few interesting ones.
Triggered by pressing NVDA+Alt+S
you can enable sound split: when using stereo
headphones this would make all NVDA sounds to go to
right channel, while all application sounds will go
to left channel (or vice versa). This could be handy
if you have to attend long and boring meetings over
VC. Additionally you can adjust NVDA volume and
applications volume separately via
Many people on NVDA mailing list
complained that there was no good way in NVDA to
copy a table from a webpage. Now there is a way!
Press NVDA+Alt+T while on a table and you’ll be
presented with a few options: you can either copy
the whole table, or current row or column. The table
will be copied with preserving formatting
information about its cells, so that you can paste
it into Microsoft Word or any other rich text
editor, and it will still appear as a table.
Experimental mouse click and mouse scroll scripts
I noticed that existing NVDA
mouse click scripts don’t always work. In particular
I found cases when NVDA+NumPadDivide keystroke
doesn’t bring mouse cursor over the link that I
would like to click. These scripts are my attempt to
solve this. The feature is experimental, in the
sense that there are still cases where it doesn’t
work as expected. Yet it already can be very useful
in some cases, so I decided to still include it in
the release. Keystrokes:
NVDA+NumPadDivide/NumPadMultiply: moves mouse
pointer to current object, clicks left/right mouse
button, then moves mouse pointer back to where it
was. Additionally it tries to check if there are any
other windows on the way (e.g. topmost windows) and
tries to get them out of the way.
Alt+NumPadPlus/NumPadMinus: Move mouse pointer over
current object and scroll up/down. This can be
useful to load more content in infinite scroll
move mouse pointer to top left corner of the screen.
This can be useful for websites that make excessive
use of mouse hover information to show popup
Recap of other functions of Tony’s enhancements
· Enhanced table
navigation commands, such as jump to first/last
· Automatic language
switching based on Unicode character set.
· QuickSearch –
similar to BrowserNav QuickJump bookmark, but works
in text editors.
keystrokes: allows to configure announcing current
line after certain keystrokes.
· Showing and hiding
any application windows.
insert/overwrite mode in text editors to prevent
accidentally overwriting text.
· Adjusting system
priority of NVDA process for better responsiveness.
Bluetooth Audio v1.4
Bluetooth audio fixes
quality of audio by playing either silence or soft
white noise as long as NVDA is active. Many
Bluetooth headphones and speakers enter standby mode
after a few seconds of inactivity. Then when NVDA
speaks next utterance, the first word or two might
be lost. Bluetooth Audio prevents these devices from
entering standby mode by keeping audio stream open
and constantly playing some sound. In fact,
Bluetooth audio has been reported to improve audio
quality on other types of audio devices: RF wireless
headphones and even some wired speakers. It can also
get rid of crackling noise on some devices.
The previous version of
Bluetooth Audio could only play silence. As a
result, it was hard to tell whether it is working or
not. In fact, it seems that it wasn’t working, or at
least not always working – one of NVDA updates in
2020 seems to have broken it, and even I didn’t
catch it. To avoid this in the future I added an
option to play soft white noise instead of silence,
so that you can hear when Bluetooth audio is
working. Another feature I added is dynamically
changing output device when NVDA configuration
changes – previously that required a restart.
IndentNav is primarily
designed for software developers, and it allows
better navigation around indented source code files
in text editors. This new version works much faster,
especially in VSCode. Here are some keystrokes to
try (please read github page for a complete list):
jump to next/previous line with the same indentation
level within current block.
NVDA+Alt+Left/Right: jump to parent/first child
line, where parent and child are defined as line
with lesser/greater indentation level.
select current block (e.g. function).
indent-paste, that is paste with adjusting
indentation level of clipboard content to match
Phonetic punctuation v1.6
Phonetic punctuation allows to
replace punctuation marks with auditory icons
(earcons). In general, it allows to replace any
regular expression configured substring with an
auditory icon, which can be great for getting rid of
timestamps and other frequently repeated fragments.
It also allows to change prosody parameters for
parts of speech, but only a few synthesizers support
this. This new version allows to adjust volume of
each individual auditory icon and has several
WordNav provides more
advanced scripts to navigate by word. It replaces
built in Control+Left/Right keystrokes with custom
scripts. It makes behavior of these keystrokes
consistent across all applications and adds multiple
options on its behavior.
In this last version I
spent quite some time to work around Google Chrome bug in its IAccessible
implementation, but in the end I made it to
work correctly in Chrome.
SentenceNav allows to
navigate by sentence via Alt+Up/Down keystrokes.
This new version includes some bugfixes.
TextNav allows you to find
the beginning of article, that is readable text
written in complete sentences, on any webpage. You
can automatically skip most of the clutter, such as
menus, images, metadata and ads on webpages. Works
by pressing Alt+Shift+Down/Up keys. This latest
version only updates compatibility flag.
Console toolkit v1.2
This add-on provides some
additional features for console application, such as
Windows command prompt and Windows Terminal. This
new version adds better support for Putty. Here are
· Control+V can now
be used for pasting.
· Speech becomes
more real-time in a console that actively prints new
· You can edit
current command by pressing NVDA+e in an accessible
· Versions have not
been updated on the official NVDA add-ons website
yet. I sent a pull request, and it is subject to
approval by NVAccess. Until then, feel free to
download latest versions using links I provided
· All the add-ons
were tested with NVDA alpha build 24399. Some
compatibility issues have been fixed, however, it is
still possible that something will change and
compatibility will break again by the time NVDA 2022
is released. The author however has very limited
time to work on add-ons, in fact the only time of
year when I have time to maintain my add-ons is the
winter break around Christmas and New Year. So, I
release my add-ons as is. I might try to find some
time to fix compatibility mid-year, but I cannot
commit to it. Which brings me to my second point:
· Volunteers needed.
I currently have 9 add-ons and they require some
maintenance and as my life gets more and more busy
every year, I am struggling to find time for that,
while users ask for compatibility, translations,
etc. I don’t want to let my users down. So, I’m
looking for someone who is familiar with add-on
development process to help me with that. Please
contact me off-list if you’re interested. Typical
maintenance tasks are: dealing with compatibility
flags and releases, dealing with translations,
optionally fixing bugs.