Topics

Process to make an NVDA app-specific addon for a web-based application


Julie Stoltz <jstoltz@...>
 

Hi all,

I am very new to this group and the NVDA application, and I apologize if I have missed anything critical in the steps to address this.

 

I searched the archives and development guide and did not find an answer to my question.

 

Our company provides a web-based app to our clients. I have been looking into NVDA and I see that it can be used to create application-specific behavior. However, such addons are named for the executable file that opens the application. In our case, our application is opened with a web address in an Internet Explorer 11 browser.

 

Can NVDA work with domain-specific web applications? If so, how should the addon be named? Are there any config settings I could use to create an alias (I believe this is how JAWS addresses this issue)?

 

I know I can create an addon for IE itself, but that option would likely interfere with other sites or applications run through IE, so I don’t want to go that route unless absolutely necessary.

 

Any guidance at all is greatly appreciated.

 

 

Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688

 


Noelia Ruiz
 

Hello, here are core developers of NVDA and they are experts in code.
I'm just an author and maintainer of some add-ons in collaboration
with community. I created placeMarkers add-on, in collaboration with
Chris and other contributors. You may be interested in looking at the
source code of this add-on, since it works in browse mode (in webpages
and other apps using it), and bookmarks and specific strings of text
to be searched are saved in files (in this case pickle and txt), to be
used in browse mode deppending on the title and other properties of
the website, so that they can work in different browsers:

https://github.com/nvdaes/placemarkers

Kind regards

2020-06-17 19:34 GMT+02:00, Julie Stoltz <jstoltz@...>:

Hi all,
I am very new to this group and the NVDA application, and I apologize if I
have missed anything critical in the steps to address this.

I searched the archives and development guide and did not find an answer to
my question.

Our company provides a web-based app to our clients. I have been looking
into NVDA and I see that it can be used to create application-specific
behavior. However, such addons are named for the executable file that opens
the application. In our case, our application is opened with a web address
in an Internet Explorer 11 browser.

Can NVDA work with domain-specific web applications? If so, how should the
addon be named? Are there any config settings I could use to create an alias
(I believe this is how JAWS addresses this issue)?

I know I can create an addon for IE itself, but that option would likely
interfere with other sites or applications run through IE, so I don't want
to go that route unless absolutely necessary.

Any guidance at all is greatly appreciated.


Julie Stoltz
Technical Communications Specialist
Cycom Data Systems, Inc.
www.cycominc.com<http://www.cycominc.com/>
888-292-6688





 

Hi,

At the moment there is no way of creating domain specific add-ons. I think a better approach might be looking into making your app usable with browsers other than (or in addition to) Internet Explorer, as IE is under maintenance mode at the moment.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Julie Stoltz
Sent: Wednesday, June 17, 2020 10:35 AM
To: nvda-devel@groups.io
Subject: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application

 

Hi all,

I am very new to this group and the NVDA application, and I apologize if I have missed anything critical in the steps to address this.

 

I searched the archives and development guide and did not find an answer to my question.

 

Our company provides a web-based app to our clients. I have been looking into NVDA and I see that it can be used to create application-specific behavior. However, such addons are named for the executable file that opens the application. In our case, our application is opened with a web address in an Internet Explorer 11 browser.

 

Can NVDA work with domain-specific web applications? If so, how should the addon be named? Are there any config settings I could use to create an alias (I believe this is how JAWS addresses this issue)?

 

I know I can create an addon for IE itself, but that option would likely interfere with other sites or applications run through IE, so I don’t want to go that route unless absolutely necessary.

 

Any guidance at all is greatly appreciated.

 

 

Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688

 


Julie Stoltz <jstoltz@...>
 

@Joseph

Thank you for the information. Your suggestion is actually in the works already. Our developers are creating a new implementation that will not be browser dependent. Unfortunately, that is about a year away, and we have a client that needs accessibility much sooner than that, so I was hoping to create a solution for the interim.

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee via groups.io
Sent: Wednesday, June 17, 2020 2:15 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application

 

Hi,

At the moment there is no way of creating domain specific add-ons. I think a better approach might be looking into making your app usable with browsers other than (or in addition to) Internet Explorer, as IE is under maintenance mode at the moment.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Julie Stoltz
Sent: Wednesday, June 17, 2020 10:35 AM
To: nvda-devel@groups.io
Subject: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application

 

Hi all,

I am very new to this group and the NVDA application, and I apologize if I have missed anything critical in the steps to address this.

 

I searched the archives and development guide and did not find an answer to my question.

 

Our company provides a web-based app to our clients. I have been looking into NVDA and I see that it can be used to create application-specific behavior. However, such addons are named for the executable file that opens the application. In our case, our application is opened with a web address in an Internet Explorer 11 browser.

 

Can NVDA work with domain-specific web applications? If so, how should the addon be named? Are there any config settings I could use to create an alias (I believe this is how JAWS addresses this issue)?

 

I know I can create an addon for IE itself, but that option would likely interfere with other sites or applications run through IE, so I don’t want to go that route unless absolutely necessary.

 

Any guidance at all is greatly appreciated.

 

 

Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688

 


Luke Davis
 

I like Nolea's elegant solution for this problem.

Another, quicker and dirtier solution, would probably be to make your add-on a globalPlugin, and have it activated and deactivated by key combination.

You may be able to code something using profiles, to detect that it only runs in the right context.

Luke

On Wed, 17 Jun 2020, Julie Stoltz wrote:

Thank you for the information. Your suggestion is actually in the works already. Our developers are creating a new implementation that will not be browser
dependent. Unfortunately, that is about a year away, and we have a client that needs accessibility much sooner than that, so I was hoping to create a
solution for the interim.


Julie Stoltz <jstoltz@...>
 

Thank you Nolea for the example. It will likely help me a great deal.

Thank you Luke for the suggestions. I was wondering if I could simply create an addon for IE, but have it verify the URL before it does anything. But your idea to make it a globalPlugin the user can turn on/off is very promising. I wonder if I did it this way if I could get it to turn itself on and off as the user moves between apps or browser tabs, so that it effectively activates and deactivates itself?

-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Luke Davis via groups.io
Sent: Wednesday, June 17, 2020 4:50 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application

I like Nolea's elegant solution for this problem.

Another, quicker and dirtier solution, would probably be to make your add-on a globalPlugin, and have it activated and deactivated by key combination.

You may be able to code something using profiles, to detect that it only runs in the right context.

Luke

On Wed, 17 Jun 2020, Julie Stoltz wrote:

Thank you for the information. Your suggestion is actually in the
works already. Our developers are creating a new implementation that
will not be browser dependent. Unfortunately, that is about a year away, and we have a client that needs accessibility much sooner than that, so I was hoping to create a solution for the interim.


 

Hi,
It might be possible using foreground and gain/lose focus events, but be
aware that you need to think about possibilities such as a website having
the same name and/or content as your app but hosted somewhere else.
Cheers,
Joseph

-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Julie Stoltz
Sent: Wednesday, June 17, 2020 2:13 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a
web-based application

Thank you Nolea for the example. It will likely help me a great deal.

Thank you Luke for the suggestions. I was wondering if I could simply create
an addon for IE, but have it verify the URL before it does anything. But
your idea to make it a globalPlugin the user can turn on/off is very
promising. I wonder if I did it this way if I could get it to turn itself on
and off as the user moves between apps or browser tabs, so that it
effectively activates and deactivates itself?

-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Luke Davis
via groups.io
Sent: Wednesday, June 17, 2020 4:50 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a
web-based application

I like Nolea's elegant solution for this problem.

Another, quicker and dirtier solution, would probably be to make your add-on
a globalPlugin, and have it activated and deactivated by key combination.

You may be able to code something using profiles, to detect that it only
runs in the right context.

Luke

On Wed, 17 Jun 2020, Julie Stoltz wrote:

Thank you for the information. Your suggestion is actually in the
works already. Our developers are creating a new implementation that
will not be browser dependent. Unfortunately, that is about a year away,
and we have a client that needs accessibility much sooner than that, so I
was hoping to create a solution for the interim.


Julien Cochuyt
 

Hi,

I am a French IT professional specialized in accessibility and core NVDA contributor.
As Joseph pointed out, there is no native support in NVDA for the use case you describe.
However, some add-ons can come in handy.

My company - with support of the french employment agency and the governmental central IT agency - is developing WebAccess, an add-on for NVDA that allows to easily implement alternative behaviors based on URL matching and DOM elements selection.
It handles, through simple form-filling, definition of new shortcuts, automatic announcement of content or restructuring of pages with basic transformations to create regions, titles, and the like.
It also serves as a framework to implement new specific behaviors through code.
Centered around WebModules - our web app equivalent of NVDA's AppModules - it currently supports Internet Explorer 11, Mozilla Firefox and Google Chrome. Support of Microsoft Edge is still a work in progress.

For the past five years, we're successfully using it to develop add-ons targeting business web applications, for the sake of visually impaired workers productivity.
Still under active development, it is already used by our network of fellow professionals but not yet quite ready for use by the general public.
We're aiming at a general public launch near the end of 2020, most likely during NVDA Con.



As Noelia pointed out, another alternative worth considering is the PlaceMarkers add-on, though I'm less aware of its current feature-scope.


Best regards,

Julien Cochuyt
Accessolutions

Le mer. 17 juin 2020 à 19:58, Julie Stoltz <jstoltz@...> a écrit :

Hi all,

I am very new to this group and the NVDA application, and I apologize if I have missed anything critical in the steps to address this.

 

I searched the archives and development guide and did not find an answer to my question.

 

Our company provides a web-based app to our clients. I have been looking into NVDA and I see that it can be used to create application-specific behavior. However, such addons are named for the executable file that opens the application. In our case, our application is opened with a web address in an Internet Explorer 11 browser.

 

Can NVDA work with domain-specific web applications? If so, how should the addon be named? Are there any config settings I could use to create an alias (I believe this is how JAWS addresses this issue)?

 

I know I can create an addon for IE itself, but that option would likely interfere with other sites or applications run through IE, so I don’t want to go that route unless absolutely necessary.

 

Any guidance at all is greatly appreciated.

 

 

Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688

 


Noelia Ruiz
 

Thanks a lot Julien. I'm very interested in your add-on.
placeMarkers works in browse mode documents. It saves and searches
bookmarks and strings of text in files whose names deppend on the
following code, in case you are curious or maybe useful.
I will clone and explore your add-on, of course.
Piece of code of placeMarkers:

obj=api.getForegroundObject()
file = obj.name
obj = api.getFocusObject()
try:
obj = obj.treeInterceptor.rootNVDAObject
childID = obj.IAccessibleChildID
iAObj = obj.IAccessibleObject
accValue = iAObj.accValue(childID)
nameToAdd = " - %s" % accValue.split("#")[0].split("/")[-1].split("\\")[-1]
except:
nameToAdd = ""
file = file.rsplit(" - ", 1)[0]
file = file.split("\\")[-1]
file += nameToAdd
file = standardFileName(file)
folderPath = os.path.join(PLACE_MARKERS_PATH, folder)
maxLenFileName = 232-len(folderPath)
if maxLenFileName <= 0:
return ""
file = file[:maxLenFileName]
file = file+ext
path = os.path.join(folderPath, file)
return path


2020-06-18 7:21 GMT+02:00, Julien Cochuyt <j.cochuyt@...>:

Hi,

I am a French IT professional specialized in accessibility and core NVDA
contributor.
As Joseph pointed out, there is no native support in NVDA for the use case
you describe.
However, some add-ons can come in handy.

My company - with support of the french employment agency and the
governmental central IT agency - is developing WebAccess, an add-on for
NVDA that allows to easily implement alternative behaviors based on URL
matching and DOM elements selection.
It handles, through simple form-filling, definition of new shortcuts,
automatic announcement of content or restructuring of pages with basic
transformations to create regions, titles, and the like.
It also serves as a framework to implement new specific behaviors
through code.
Centered around WebModules - our web app equivalent of NVDA's AppModules -
it currently supports Internet Explorer 11, Mozilla Firefox and Google
Chrome. Support of Microsoft Edge is still a work in progress.

For the past five years, we're successfully using it to develop add-ons
targeting business web applications, for the sake of visually impaired
workers productivity.
Still under active development, it is already used by our network of fellow
professionals but not yet quite ready for use by the general public.
We're aiming at a general public launch near the end of 2020, most likely
during NVDA Con.

GitHub repo: https://github.com/accessolutions/WebAccessForNVDA


As Noelia pointed out, another alternative worth considering is the
PlaceMarkers add-on, though I'm less aware of its current feature-scope.


Best regards,

Julien Cochuyt
Accessolutions

Le mer. 17 juin 2020 à 19:58, Julie Stoltz <jstoltz@...> a écrit :

Hi all,

I am very new to this group and the NVDA application, and I apologize if
I
have missed anything critical in the steps to address this.



I searched the archives and development guide and did not find an answer
to my question.



Our company provides a web-based app to our clients. I have been looking
into NVDA and I see that it can be used to create application-specific
behavior. However, such addons are named for the executable file that
opens
the application. In our case, our application is opened with a web
address
in an Internet Explorer 11 browser.



Can NVDA work with domain-specific web applications? If so, how should
the
addon be named? Are there any config settings I could use to create an
alias (I believe this is how JAWS addresses this issue)?



I know I can create an addon for IE itself, but that option would likely
interfere with other sites or applications run through IE, so I don’t
want
to go that route unless absolutely necessary.



Any guidance at all is greatly appreciated.





Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688







Julie Stoltz <jstoltz@...>
 

Thank you Julien. After a quick skim, your app looks like it addresses a lot of the things we will need. I can already tell you I'll be spending my weekend reading through it closely and playing with it. Many, many thanks for sharing.

-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Noelia Ruiz via groups.io
Sent: Thursday, June 18, 2020 1:40 AM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application

Thanks a lot Julien. I'm very interested in your add-on.
placeMarkers works in browse mode documents. It saves and searches bookmarks and strings of text in files whose names deppend on the following code, in case you are curious or maybe useful.
I will clone and explore your add-on, of course.
Piece of code of placeMarkers:

obj=api.getForegroundObject()
file = obj.name
obj = api.getFocusObject()
try:
obj = obj.treeInterceptor.rootNVDAObject
childID = obj.IAccessibleChildID
iAObj = obj.IAccessibleObject
accValue = iAObj.accValue(childID)
nameToAdd = " - %s" % accValue.split("#")[0].split("/")[-1].split("\\")[-1]
except:
nameToAdd = ""
file = file.rsplit(" - ", 1)[0]
file = file.split("\\")[-1]
file += nameToAdd
file = standardFileName(file)
folderPath = os.path.join(PLACE_MARKERS_PATH, folder)
maxLenFileName = 232-len(folderPath)
if maxLenFileName <= 0:
return ""
file = file[:maxLenFileName]
file = file+ext
path = os.path.join(folderPath, file)
return path


2020-06-18 7:21 GMT+02:00, Julien Cochuyt <j.cochuyt@...>:
Hi,

I am a French IT professional specialized in accessibility and core
NVDA contributor.
As Joseph pointed out, there is no native support in NVDA for the use
case you describe.
However, some add-ons can come in handy.

My company - with support of the french employment agency and the
governmental central IT agency - is developing WebAccess, an add-on
for NVDA that allows to easily implement alternative behaviors based
on URL matching and DOM elements selection.
It handles, through simple form-filling, definition of new shortcuts,
automatic announcement of content or restructuring of pages with basic
transformations to create regions, titles, and the like.
It also serves as a framework to implement new specific behaviors
through code.
Centered around WebModules - our web app equivalent of NVDA's
AppModules - it currently supports Internet Explorer 11, Mozilla
Firefox and Google Chrome. Support of Microsoft Edge is still a work in progress.

For the past five years, we're successfully using it to develop
add-ons targeting business web applications, for the sake of visually
impaired workers productivity.
Still under active development, it is already used by our network of
fellow professionals but not yet quite ready for use by the general public.
We're aiming at a general public launch near the end of 2020, most
likely during NVDA Con.

GitHub repo: https://github.com/accessolutions/WebAccessForNVDA


As Noelia pointed out, another alternative worth considering is the
PlaceMarkers add-on, though I'm less aware of its current feature-scope.


Best regards,

Julien Cochuyt
Accessolutions

Le mer. 17 juin 2020 à 19:58, Julie Stoltz <jstoltz@...> a écrit :

Hi all,

I am very new to this group and the NVDA application, and I apologize
if I have missed anything critical in the steps to address this.



I searched the archives and development guide and did not find an
answer to my question.



Our company provides a web-based app to our clients. I have been
looking into NVDA and I see that it can be used to create
application-specific behavior. However, such addons are named for the
executable file that opens the application. In our case, our
application is opened with a web address in an Internet Explorer 11
browser.



Can NVDA work with domain-specific web applications? If so, how
should the addon be named? Are there any config settings I could use
to create an alias (I believe this is how JAWS addresses this issue)?



I know I can create an addon for IE itself, but that option would
likely interfere with other sites or applications run through IE, so
I don’t want to go that route unless absolutely necessary.



Any guidance at all is greatly appreciated.





Julie Stoltz

Technical Communications Specialist

Cycom Data Systems, Inc.

www.cycominc.com

888-292-6688







Brian's Mail list account
 

More to the point though, one has to ask why, if this is a web application, is it so inaccessible that it would need an add on. Without more detail on the actual problem most are just guessing here.
Brian

bglists@...
Sent via blueyonder.
Please address personal E-mail to:-
briang1@..., putting 'Brian Gaff'
in the display name field.
Newsgroup monitored: alt.comp.blind-users

----- Original Message -----
From: "Luke Davis" <luke@...>
To: <nvda-devel@groups.io>
Sent: Wednesday, June 17, 2020 9:49 PM
Subject: Re: [nvda-devel] Process to make an NVDA app-specific addon for a web-based application


I like Nolea's elegant solution for this problem.

Another, quicker and dirtier solution, would probably be to make your add-on a globalPlugin, and have it activated and deactivated by key combination.

You may be able to code something using profiles, to detect that it only runs in the right context.

Luke

On Wed, 17 Jun 2020, Julie Stoltz wrote:

Thank you for the information. Your suggestion is actually in the works already. Our developers are creating a new implementation that will not be browser
dependent. Unfortunately, that is about a year away, and we have a client that needs accessibility much sooner than that, so I was hoping to create a
solution for the interim.