Re: Accessibility Issues with NSPopover (MacOS)
Re: Accessibility Issues with NSPopover (MacOS)
- Subject: Re: Accessibility Issues with NSPopover (MacOS)
- From: Patti Hoa <email@hidden>
- Date: Thu, 17 May 2012 10:40:19 -0700
On May 17, 2012, at 2:30 AM, Motti Shneor wrote:
> Hello everyone.
>
> I am experiencing grave problems setting up decent accessibility to my NSPopover. Most issues affect VoiceOver users, but some affect regular users too.
>
> 1. When NSPopover is first shown, VoiceOver will only report the CONTENTS of the popover (it will say: "3 items") never any title or any other attribute of the popover. I used whatever I could, both programmatically and in .xib files, to no avail. I know my Popover's Accessibility description is OK, because if i hit VO-F2-F2 (VoiceOver's command for "Window List") The popover is rightly named in the list. However, in Accessibility-inspector I can determine that the help-tag I set on the popover is null - even if i added accessibility help both in .xib and programmatically.
That is the output behavior of VoiceOver, not controllable by the application. If you think VoiceOver should speak something else, file a radar bug and specify what other information the user should hear.
>
> 2. Once my Semi-Transient popover loses user-focus (user clicks on the main window), I can not set it back on the popover (neither on the popover itself, nor on any of its subviews). I need to do this programmatically, because focus is sometimes lost because of another dialog popping on the main window following remote server message.
>
> The accessibility user who lost the focus can have very hard time to find it, and sometimes he doesn't even have a chance to know that this popover even exists onscreen.
Ideally if another dialog gains keyboard focus, the popover should get dismissed. If you can detect that and programmatically dismiss the popover, that may be the workaround for now. Otherwise, VO user can only get back to the popover via control-option-F2-F2.
>
> 3. As NSPopover manages its internal window in a very-opaque way, and I can't find a way THAT WORKS to set up the "initialFirstResponder" for it, or its window title, or any accessibility attributes on the popover's internal window.
Why would you want to set accessibility attributes on the popover's internal window? To VoiceOver, a popover is simply treated like a child of the element that triggered it. Accessibility clients really should not know or care about how the NSPopover was constructed (via window or such).
>
> 4. I to set up accessibility link from anywhere else in my application to the popover (or one of its subviews/controls), to help user find this Popover. It contains important information which is semi-transient and can be attached to different places on-screen. There must be some symbolic way to reach it! or to regain focus on it, after focus was lost.
Perhaps control-option-shift-j can jump back and forth between popover and triggering window, like what it already does for word suggestion bubble and input methods. If it doesn't do that for popover right now, please file an enhancement bug for VoiceOver. You won't need to explicitly set up accessibility link then.
>
> There is very little documentation and help on NSPopovers, and nothing at all about NSPopover Accessibility. I've seen that AXPopover exists (in accessibility inspector) but that doesn't help much. If you ask me --- NSPopover breaks Apple's most basic Cocoa design rule. It is neither Model, View or Controller. It forces the programmer an unhealthy mix of the view and controller, and as far as I could trace Apple's use of it --- It's not ver usable too. Whenever anything little-more-than-trivial is needed, Apple uses something else (I don't know how to create a regular window that is visually anchored like an NSPopover.) like the inspector "Popover" in iCal, for instance.
>
> I spent lots of time by now, and seem to have reached a dead end. Please advise..
>
> Motti Shneor, Mac OS X Software Architect & Team Leader
> Spectrum Reflections Ltd.
> +972-54-3136621
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Accessibility-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Accessibility-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden