Because an email is not technically a website, I’m not sure
that feature will work as you want it to. You can either use a say all or
junp to text after block of links key stroke. Good luck.
I have tried using the app on site like Youtube, I was able to generate a
bookmark on the play pause button.
1. I open either email from the current folder
2. I jump to the content of the email by heading and move to the line "reply"
and want to create a bookmark on that position
3. I press nvda j, down to bookmark and press right arrow, it only offer me
one option "Create new bookmark from current paragraph for site All
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!
· Website: https://github.com/mltony/nvda-browser-nav/
· Download: https://github.com/mltony/nvda-browser-nav/releases/latest/download/browsernav.nvda-addon
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 in
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: https://old.reddit.com/r/sysadmin/comments/rt91z6/exchange_2019_antimalware_bad_update/
· Hacker news:
· Alt+` or
Alt+Shift+`: jump to next/previous comment and announce its
· 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 corresponding
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
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
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
· 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
· Block live
region announcements. Similarly, some websites misuse live regions. BrowserNav
allows to selectively block them.
QuickClick. Once you configured QuickClick bookmarks on a website, you
can tell BrowserNav to click those bookmarks automatically when website is
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 NVDA+Alt+Down/Up.
· Navigation by
font size: allows to find text written in the same font size or font
· 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
Tony’s Enhancements v1.13
· Website: https://github.com/mltony/nvda-tonys-enhancements
· Download: https://github.com/mltony/nvda-tonys-enhancements/releases/latest/download/tonysEnhancements.nvda-addon
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
NVDA+Control+PageUp/PageDown and NVDA+Alt+PageUp/PageDown
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.
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
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 row/column.
language switching based on Unicode character set.
· QuickSearch –
similar to BrowserNav QuickJump bookmark, but works in text
keystrokes: allows to configure announcing current line after certain
· Showing and
hiding any application windows.
insert/overwrite mode in text editors to prevent accidentally overwriting
system priority of NVDA process for better responsiveness.
Bluetooth Audio v1.4
· Website: https://github.com/mltony/nvda-bluetooth-audio
· Download: https://github.com/mltony/nvda-bluetooth-audio/releases/latest/download/bluetoothaudio.nvda-addon
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.
· Website: https://github.com/mltony/nvda-indent-nav/
· Download: https://github.com/mltony/nvda-indent-nav/releases/latest/download/IndentNav.nvda-addon
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
NVDA+Alt+Up/Down: 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.
NVDA+Control+I: 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
· Website: https://github.com/mltony/nvda-phonetic-punctuation/
· Download: https://github.com/mltony/nvda-phonetic-punctuation/releases/latest/download/phoneticPunctuation.nvda-addon
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.
· Website: https://github.com/mltony/nvda-word-nav/
· Download: https://github.com/mltony/nvda-word-nav/releases/latest/download/wordNav.nvda-addon
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
· Website: https://github.com/mltony/nvda-sentence-nav/
· Download: https://github.com/mltony/nvda-sentence-nav/releases/latest/download/SentenceNav.nvda-addon
SentenceNav allows to navigate by sentence via
Alt+Up/Down keystrokes. This new version includes some
· Website: https://github.com/mltony/nvda-text-nav/
· Download: https://github.com/mltony/nvda-text-nav/releases/latest/download/textnav.nvda-addon
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
· Website: https://github.com/mltony/nvda-console-toolkit/
· Download: https://github.com/mltony/nvda-console-toolkit/releases/latest/download/consoleToolkit.nvda-addon
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 messages.
· 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:
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