|
Bugzilla – Full Text Bug Listing |
| Summary: | Return HelpProvider's HelpString when querying an accessible's description | ||
|---|---|---|---|
| Product: | [Mono] UI Automation | Reporter: | Brian Merrell <bgmerrell> |
| Component: | Winforms - General | Assignee: | E-mail List <mono-a11y-bugs> |
| Status: | NEW --- | QA Contact: | E-mail List <mono-a11y-qa> |
| Severity: | Enhancement | ||
| Priority: | P3 - Medium | ||
| Version: | Release 1.0 | ||
| Target Milestone: | Release 1.1 | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Found By: | Integration Test | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | IRC discussion referenced in COMMENTS | ||
|
Description
Brian Merrell
2009-03-23 17:20:07 UTC
Created attachment 281260 [details]
IRC discussion referenced in COMMENTS
Looking into this, I'm not really sure how we could make this happen. Controls don't have references to their HelpProvider, so when the Control's HelpText is queried, it can't know what to pull back. Mario, do you have any bright ideas? I wrote something similar for SWF.ErrorProvider, there's a class (ErrorProviderListener) listening 4 internal SWF.Events, 2 are used to associate control & SWF.ErrorProvider: UIAErrorProviderHookUp and UIAErrorProviderUnhookUp, in order to keep track of those new warning-icons controls added when SWF.ErrorProvider.Show is called, anyway, basically the flow is the following:
1. UIAErrorProviderHookUp is raised, ErrorProviderListener associates Control+ErrorProvider and does magic to keep track of those new controls
2. UIAErrorProviderUnhookUp is raised, ErrorProviderListener removes association.
So, writing something similar would help:
1. (new internal event) SWF.HelpProvider.UIAErrorProviderHookUp is raised when SWF.HelpProvider.SetHelpString("something") (in SWF.HelpProvider.HelperProperty.ctr), also seems that an internal event to raise changes on SWF.HelpProvider.HelperProperty.Text is going to be required, you know to actually raise an UIA NameProperty changed event when we replacing "something" with "something else", this event would be used by HelpProviderListener to keep a dictionary (control/help string).
2. (new internal event) SWF.HelpProvider.UIAErrorProviderUnhookUp is raised when SWF.HelpProvider.SetHelpString("null"), used by HelpProviderListener to remove key (control)
3. And, finally, in SimpleControlProvider we would need to call a new static method HelpProviderListener.GetErrorProvider(Control) to get the key value stored by HelpProviderListener on the dictionary.
This would work.
|