microsoft / accessibility-insights-windows

Accessibility Insights for Windows
https://accessibilityinsights.io
Other
430 stars 102 forks source link

[General Question] Warning in AI4Win Test about empty automation name for win32 list control header #1842

Closed skuskusku closed 5 months ago

skuskusku commented 5 months ago

How do I bypass the warning about empty automation name for the header control of a syslistview32 list control

My application uses a pretty standard win32 syslistview32 list control from comctl32 in report mode with a header control. When testing this with AI4Win I get a warning for this header control, which has an empty UIA name with the following wording:

"The name property of the given element may be null or empty if the element has no siblings of the same type"

The suggested fix for this is the following:

"Set the UI Automation Name property of this element to be null or empty if the element has no siblings of the same type."

So the suggested fix is to provide an empty name for this element, but it already has an empty name. Is there anything I can/should do here, to avoid or bypass this warning?

Any help appreciated,

-- Stefan

v-viyada commented 5 months ago

@skuskusku Thanks for reaching out. In order for us to investigate this issue we need some way to replicate it. Can you provide a sample app that shows the behavior as well as the a11ytest file if you captured it? This will allow us to investigate what may be happening in this scenario. Thanks!

skuskusku commented 5 months ago

@v-viyada I will be happy to do that, please wait until Monday, as I will be on vacation tomorrow. I have no idea what a a11ytest file is, but I would be happy to learn about it. Do you have any pointers, where I could read about a11ytest? If not, I will do my very best to find out myself.

Regards,

-- Stefan

v-viyada commented 5 months ago

@skuskusku Automated check results from AI4Win can be saved to a file with the .a11ytest file name extension. Please refer saving automated check results. Thanks

skuskusku commented 5 months ago

@v-viyada Again MFC was the culprit: I had subclassed the header control and had a call to EnableActiveAccessibility in the header control's constructor. This caused the header control to have an empty UIA name and hence the warning I saw. I had to call EnableActiveAccessibility in order to be able to override the header control's accDoDefaultAction virtual function which does a sort operation in my case. You can close this issue, I was able to workaround this issue using server annotations.

v-viyada commented 5 months ago

Closing this based on user confirmation.