I can help managing your add-ons, except on the current
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
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 bookmarks.
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
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 installed:
· 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 >
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 around.
· Block live region
announcements. Similarly, some websites misuse live
regions. BrowserNav allows to selectively block them.
· Auto QuickClick.
Once you configured QuickClick bookmarks on a
website, you can tell BrowserNav to click those
bookmarks automatically when website is fully loaded.
Vertical navigation (via
NVDA+Alt+Up/Down commands) now works much faster in
Chromium-based browsers and Firefox.
Recap of other BrowserNav functions
· Vertical navigation:
allows to find objects on a web page that are directly
underneath by pressing NVDA+Alt+Down/Up.
· 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 not justified.
· 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 websites.
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 windows.
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
· Dynamic keystrokes:
allows to configure announcing current line after
· 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
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.
jump to parent/first child line, where parent and
child are defined as line with lesser/greater
select current block (e.g. function).
indent-paste, that is paste with adjusting indentation
level of clipboard content to match current line.
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 bugfixes.
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 some
· 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 window.
· 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 above.
· 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