Hi.
Some points in case you aren't aware. The following from documentation (UI accessibility and automation support - - What's New (appeon.com)):
MSAA is a legacy technology introduced in Windows 95; it supports the PowerBuilder standard controls well; but it imposes major limitations on the PowerBuilder custom controls such as DataWindows. Starting from PowerBuilder 2019 R3, PowerBuilder supports a newer and more capable technology which overcomes the limitations of MSAA; this new technology called Microsoft UI Automation offers a richer set of properties and extended interfaces to manipulate not only standard controls but also custom controls (such as PowerBuilder DataWindows and child controls in DataWindows).
So, MSAA has limitations when we speak about datawindows. Powerbuilder supports Microsoft UI Automation to "expose" datawindow controls. But: "you will need to set the AccessibleName and AccessibleDescription properties in the controls' Property tab page".
Datawindow styles that are suported are:
- CrossTab
- FreeForm
- Grid
- Group
- Label
- N-Up
- Tabular
- TreeView
Supported controls for a datawindow are:
- Button
- Computed Field
- GroupBox
- Text
- Column - supported following styles:
- CheckBox
- DropDownListBox
- DropDownDataWindow
- Edit
- EditMask
- RadioButtons
As mentioned, for those controls you will have to set AccessibleName and AccessibleDescription properties.
The main question now: does your automation tool supports Microsoft UI Automation API? If yes, do you have set values to AccessibleName and AccessibleDescription properties for each control you want to be exposed? Also you should set the appropriate AccessibleRole for each control (by default it will always be defaultrole!). Example: a column should have the columnrole! and it's header the columnheaderrole!).
This can be done programmatically. Depending on the way you choose to implement this it may be lot of work...
For the second question about the pb.ini, Accessibility should be enabled by default. But there is a accessibility option setting that can be set to pb.ini. I've seen some options in the following link by Miguel Leeuwe PB.MiguelL.work - List entries. He provides explanation for each possible value. In your case, based on Miguel's work, you should have in you ini:
[Data Window]
Accessibility=1
# or
#Accessibility=2
because you need to have enabled Microsoft UI Automation.
Andreas.