Re: Jetbrains IDEs - improving speech and focus. #addonrelease #addontesting


Hi Joseph,
I will move this thread to the other group, and try to create a custom class.
Unfortunately, it seems to me that most windows and IDs have the same
class window name of SunAwtFrame and the ID of 0. I looked it up using
Access Bridge Explorer by Google.

Thanks for your help and the hint about other group.

On 09/01/2019, Joseph Lee <joseph.lee22590@...> wrote:

Welcome to NvDA list.

Focus entered is most appropriate if an item inside a container (lists, for
example) is focused.

Regarding focus item problem: the code fragment below won’t work simply
because it’ll match ALL edit fields (think about what that if statement
does, as it’ll silence all speech if system focus moves to any edit field).
A common solution is to match a specific edit field by inspecting window
class names, control ID’s and what not, along with properties of
accessibility API object representing the edit field to screen readers (in
this case, what Java Access Bridge says about the edit field in question).

Auto-completes and a more general solution: I think the best way to handle
this situation is defining an overlay class. This means letting the app
module come with an overlay class representing the edit field, with the
overlay class dealing with focus announcement, auto-complete suggestions
(there is already a behavior mix-in defined for it named
EditableTextWithSuggestions) and others. Then in the app module class, you
can use chooseNVDAObjectOverlayClasses method to locate the specific edit
field represented by the overlay class and inserting that class to top of
the classes list (clsList), which means any event NVDA listens to and
commands will be sent to that edit field before falling back to default

Although users list may provide you with some starting points, it isn’t
really a forum that talks about intricacies of add-on development; there is
a sister forum to this users list (named nvda-addons hosted on Groups.IO)
where people like you come together and share their knowledge.

P.S. I’m the one who wrote definitions for EditableTextWithSuggestions
mix-in back in 2017 as part of a project to let NVDA deal with UIA search



From: <> On Behalf Of
Sent: Wednesday, January 9, 2019 4:53 AM
Subject: [nvda] Jetbrains IDEs - improving speech and focus. #addonrelease
#addonrelease #addonrelease #addontesting

Dear Everyone,
I recently started using Jetbrains IDEs. I think that they are very good in
terms of accessibility, for Jetbrains provides a specific enhanced mode for
screen readers.
However there are minor interactions, which are not convinient for constant
1. While code completion works fantastically well, the bug can be described
as follows:
* Whenever I accept a completion item: a variable / property / function, and
the editor gains focus, NVDA is always reading the name property of the
editor class provided by the Java Access Bridge,
* For example: "Editor for <name of the currently opened file>, and then
continues with the trest of the focused content, or reports inserted item.
2. I tried to create a simple appmodule, which checks if the controle type
is of type: ROLE_EDITABLETEXT and then cancel speech, but suddenly inserted
items are not being reported, the line content is not visible on the Braille
display, and code completion stopped working...

The code is as follows:

class AppModule(appModuleHandler.AppModule):

def event_focusEntered(self, obj, nextHandler):

if obj.role == controlTypes.ROLE_EDITABLETEXT:



I import Java Access Bridge objects, NVDA objects and behaviors. The edit
control is the one without autoselect detection.

I am seaking help in creating the fix for this too verbose announcements. I
must say that this IDE is much better when it comes to coding than Visual
Studio or Visual Studio Code. Jetbrains has products for different
languages, but they use a common shell, just ike Eclipse does, so it would
be a fantastic tool for blind developers.

Thank you for your help in advance...

Join to automatically receive all group messages.