Skip to content

Update DataGrid internal properties and add accessibility tests - #41

Merged
Mykola-Kovalchuk-wtg merged 2 commits into
masterfrom
M.K/WI01015835
Aug 26, 2026
Merged

Update DataGrid internal properties and add accessibility tests#41
Mykola-Kovalchuk-wtg merged 2 commits into
masterfrom
M.K/WI01015835

Conversation

@Mykola-Kovalchuk-wtg

@Mykola-Kovalchuk-wtg Mykola-Kovalchuk-wtg commented Aug 21, 2026

Copy link
Copy Markdown

UiPath reads module search grids through the MSAA accessibility tree published by the legacy WinForms DataGrid that ZGrid/ZDisplayGrid derives from. Verified in the live client that the managed accessible objects return fully correct data (column header "Consol ID", row "C00001000", cell "Type" / "AGT"). The values are lost only when crossing the COM/MSAA boundary: Role and State come through correctly, while Name, Value and DefaultAction come back empty.

Cause: AccessibleObject.IsInternal returns true for any acce​ssible object declared inside System.Windows.Forms.dll. Migrating the legacy DataGrid into that assembly (commit 9bf6797, WI01041726, 20-Mar-2026) therefore enabled the CanGetNameInternal / CanGetValueInternal fast paths, which delegate to the OS default provider instead of the control's overridden Name and Value properties. The DataGrid accessible objects only override Name and Value, so nothing is returned.

This worked on the customer's Production version because it still uses the in-box .NET Framework 4.8 WinForms, which has no such optimisation.

Suggested fix: override IsInternal to false on the migrated legacy accessible objects in the fork's Controls/Unsupported folder. This restores Name, Value, DefaultAction, Description, Help and KeyboardShortcut in one change and matches .NET Framework behaviour.

Impact is wider than reported: all ZGrid-based grids, and all assistive technology including screen readers. A standalone A/B repro (.NET 4.8 PASS vs .NET 10 FAIL) is available. Full analysis attached in eDocs.

- Updated multiple DataGrid-related classes to override IsInternal property to return false, enhancing accessibility compliance.
- Introduced a new test for DataGrid accessibility objects to ensure legacy property accessors are used.
@Mykola-Kovalchuk-wtg
Mykola-Kovalchuk-wtg merged commit 09a73df into master Aug 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants