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!
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.
are four types of bookmarks in BrowserNav:
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
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.
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
· 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 1.
· Alt+2 or Alt+Shift+2:
jumpt to next/previous comment at level 2.
· 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 >
are a few options that can be configured on per website
· 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.
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), etc.
· 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
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
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
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
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.
· Alt+NumPadDelete: 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 text
· Dynamic keystrokes:
allows to configure announcing current line after
· Showing and hiding any
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):
· NVDA+Alt+Up/Down: 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 indentation
· NVDA+Control+I: select
current block (e.g. function).
· NVDA+V: indent-paste,
that is paste with adjusting indentation level of
clipboard content to match current line.
Phonetic punctuation v1.6
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
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 bugs.