mltony / nvda-browser-nav Goto Github PK
View Code? Open in Web Editor NEWBrowserNav is NVDA add-on that enhances NVDA browse mode with new keystrokes.
License: GNU General Public License v2.0
BrowserNav is NVDA add-on that enhances NVDA browse mode with new keystrokes.
License: GNU General Public License v2.0
I rarely interact with sites where BrowserNav's parent/child navigation is necessary, that is I don't often read reddit or hacker news, or much other commenting sites like that. As such, the beeps this add-on presents are mostly extraneous information, and on sites like this one actually can be somewhat painful, given how high the beeps get with some of the supposed levels around nav bars. I understand these are to convey the level relationship. But is it possible to have a gesture to disable this indication while still allowing the roter navigation? Perhaps it could be baked into site settings, so you could, say, turn beeps off globally but then turn them back on on some sites where they would be useful. At the moment I have to cludge this by setting beep volume to 0, which is a global setting and does not go through site settings in the slightest. @mltony
See my comment in NVDA issue #15711
When I disable BrowserNav, that option starts appearing in the Browse Mode options list.
BrowserNav doesn't support having multiple bookmarks as quick jump bookmark. It allows multiple bookmarks to be a quick jump bookmark but only the first bookmark is used when pressing j in a document. Tested with BrowserNav 2.4 and NVDA 2022.2.
Steps to reproduce:
In my opinion BrowserNav should either:
From a post on groups.io:
https://nvda-addons.groups.io/g/nvda-addons/topic/browser_nav_key_clash/99085983
We need to change to another more appropriate gesture.
cc @mltony
With BrowserNav V2.3, moving around on some websites or simply typing characters into certain edit boxes makes NVDA silent or quite sluggish. For instance, do the following:
Just tried latest browsernav addon with latest NVDA alpha snapshot on latest Chrome Canary version.
Unfortunately, doing NVDA+E on a Jupyter cell gives the following output:
ERROR - scriptHandler.executeScript (00:53:30.003) - MainThread (20916):
error executing script: <bound method GlobalPlugin.injectBrowseModeKeystrokes.. of <globalPlugins.NVDAExtensionGlobalPlugin.browseModeEx.virtualBuffersEx.ChromeVBufEx object at 0x08880A30>> with gesture 'NVDA+e'
Traceback (most recent call last):
File "scriptHandler.pyc", line 208, in executeScript
File "C:\Users\flori\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav.py", line 1266, in
script=lambda selfself, gesture: self.script_editJupyter(gesture, selfself),
File "C:\Users\flori\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav.py", line 857, in script_editJupyter
obj = selfself._lastFocusableObj
AttributeError: 'ChromeVBufEx' object has no attribute '_lastFocusableObj'
I do believe some of these methods were altered or removed recently, so perhaps you just need to retrieve a different value to make it work again. Figured I'd let you know, as I would really love this to work again :)
Tony,
Although BrowserNav Version 2.4 is what downloads on both the Community Add-Ons Site and from the Spanish Add-On Catalog, the compatibility information on the Community Add-Ons site still reads:
NVDA compatibility: from 2018.1 to 2019.1
I thought you might like to know this. I don't know who actually does the updating, but I figure a nudge from you would move things along.
Brian
My current workaround is to go back to NVDA 2022.4 and install all the older versions of add-ons.
Hello,
I'm using version 2020.4 of NVDA because on my office I haven't the admin rights to update NVDA.
I downloaded Browsernav, it is enabled from the addon list but it appears that no keystrokes are active.
I found this error on the log file:
ERROR - globalPluginHandler.listPlugins (16:24:27.750) - MainThread (6708):
Error importing global plugin browserNav
Traceback (most recent call last):
File "globalPluginHandler.pyc", line 23, in listPlugins
File "importlib_init_.pyc", line 127, in import_module
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in call_with_frames_removed
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav_init.py", line 58, in
from . import quickJump
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 463, in
globalConfig = loadConfig()
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 450, in loadConfig
return QJConfig(json.loads(rulesConfig))
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 414, in init
for item in d['sites']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 414, in
for item in d['sites']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 361, in init
for bookmarkDict in d['bookmarks']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 361, in
for bookmarkDict in d['bookmarks']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 307, in init
for attrDict in d['attributes']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 307, in
for attrDict in d['attributes']
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 255, in init
object.setattr(self, 'attribute', QJAttribute(d['attribute']))
File "D:\Users\MI09424\AppData\Roaming\nvda\addons\browsernav\globalPlugins\browserNav\quickJump.py", line 183, in init
value = controlTypes.Role(value)
AttributeError: module 'controlTypes' has no attribute 'Role'
Can you fix it or version 2020.4 is not supported?
Hello Tony
There is a recent discussion on the add-on mailing list regarding the add-on translation and the automatic translation system.
More specifically in this discussion, it appears that there is a will to have BrowserNav translated.
From what I have seen, here is the (non exhaustive) status:
pythonSources
in the buildVars.py
to get all translatable strings in the .pot.If you need assistance or lack of time, you may ask for help on the add-on mailing list. I hope someone can help.
Personally, I can provide advices, but do not have so much time to help more. If you ask for help and no one answers positively, I can reconsider to help more, provided you confirm that you will be interested (i.e. I do not want to lose my time).
PS: Nothing to do with this issue. But while at it, can you take care of updating the style.css to last versions as you did for your other add-ons (e.g. Tony's enhancements)? Thanks.
At the time of this writing, the "download stable version link" (https://github.com/mltony/nvda-browser-nav/releases/download/v2.5/browsernav.nvda-addon) leads to a 404 page (page not found).
A number of web pages contain dynamically updated content that isn't automatically spoken. By setting an element to have an Live region the screen reader will announce it when it changes. it would be useful to define this as a type of bookmark in Browsernav, or even have a hotkey to toggle the current element's state.
Some web pages display poorly-named elements, unlabelled buttons etc, or are very wordy or not wordy enough. A bookmark type that let you adjust how that element is displayed to NVDA would be very useful. Especially if you could use the current label in some form, perhaps regexp backreferences? so you could really adjust your listening experience on a per-page basis.
For example, one of my grocery websites has a button with a value of "increase quantity of Milk to 2". I'd love just to hear "2 milk". if you listen to this hundreds of times each week when shopping it gets frustrating in the extreme. Reinterpreting the value of elements presented to screen readers would be a very personal, but useful, addition.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.