Open trichview opened 4 years ago
Hi @trichview , I am just a user of some software that uses your Delphi components but do you think if adding Window class mapping should solve the issues from the root. Before, I have tried to do the same with other screen readers like the code you import into NVDA but some don't work and even with NVDA works not nicely, especially with NVDA's own commands. I think the best solution should be to implement the accessibility features for your SRV controls. In this way, I think most of assistive software including screen readers like NVDA and screen magnifications could get correct info from your SRV controls. When the focus is in your SRV program window with NVDA, you can press Insert+F1 to check how and what NVDA gets the technical info from your controls. Hope it gives some points.
Thank you for information. However, can you give me at least one example of an editor, where NVDA works using IAccessible? I read IAccessible documentation, and as far as I see, a minimal object for accessibility is a block of text, without access to individual characters. So I do not understand how to instruct NVDA to read a single character when the caret moves :( Another editor example would be helpful. As I understand, IAccessible is not used for Notepad, Wordpad and MS Word.
It's not used for notepad? I know it wouldn't be for wordpad because that's a rich edit control. I think IAccessible info is exposed on sintilla edits, so notepad++/notepad2 etc, or text areas in standard Windows GUIs or a crossplatform solution that instantiates objects based on the platform, such as JavaFX, WXPython etc. Not sure about Windows forms.
@trichview Nice that you're reaching out to us. I'm not sure whether your request to map these to edit is valid, as the edit window class seems to be used by plain text edit controls, like notepad. Rather, what version of rich edit have you implemented in your controls?
Our controls do not use any richedits, they are written from scratch. They implement Windows messages (like WM_GETTEXT or EM_LINEINDEX) in a way compatible with standard plain text Edit control. Since NVDA is not interested in text formatting or pictures, it's enough reading text aloud.
May I know any further progress on the improvements of SRV's accessibility @trichview ? NVDA does not only read plain text but also can get and read other objects like images, tables, font attributes etc. I have gone through few programs using ScaleTRichview which are very useful but they are not accessible. If you @leonardder and @trichview could have accessibility solution for SRV, that is very helpful and much thankful.
cc: @michaelDCurran
@trichview I think the modern way to bring this forward is implementing support for the Text and TextRange UIA control patterns in your control. This way, all screen readers including NVDA will support the control automatically and there is no explicit mapping necessary. Alternatively, there is IAccessibleText (IAccessible2).
Is your feature request related to a problem? Please describe.
I request to implement support for our ScaleRichView library. This is a Delphi word processing component that is used in many applications, Web site: https://www.trichview.com/features/scalerichview.html Sample application based on ScaleRichView (no installation required): https://www.trichview.com/support/files/temp/ActionTestTabs_MultiRes.zip
Describe the solution you'd like
This component uses several window classes, all of them should be mapped to "Edit". This is already implemented for another our library, TRichViewEdit, and it works. The list of classes that I ask to add is:
I am not sure, are these mapping in
source\NVDAObjects\window\__init__.py
? If yes, please add towindowClassMap
:Describe alternatives you've considered
Additional context
I am the developer of these editors.