• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Make a text view/table view pair accessible
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Make a text view/table view pair accessible


  • Subject: Re: Make a text view/table view pair accessible
  • From: Boris Dušek <email@hidden>
  • Date: Thu, 27 Feb 2014 21:20:24 +0100

I have a bit simpler situation: I have an NSTextField instead of NSTextView. I stress that like the OP and unlike the properties popover for tagging documents, I don’t want the text field value change when the user moves through the table with arrow up/down, I just want the selected table row to be spoken while the user is in the text field navigating the table view results with arrow up/down.

I tried a few experiments with NSAccessibilityPostNotificationWithUserInfo using the NSAccessibilityAnnouncementRequestedNotification and this is what I found:

1. the announcement is spoken iff the view passed as the first argument to NSAccessibilityPostNotificationWithUserInfo is the view on which VO cursor currently is. Specially, whether the announcement is spoken does not depend on what is the AXFocusedUIElement (usually first responder).
2. observation “1.” does not hold if the view is a NSTextField, no matter if editable, or as a static label, or an NSButton. (I verified “1.” holds when the view is a custom NSView subclass, or when the view is a NSProgressIndicator. Besides these 4 NSView subclasses, I did not try any others)

So if “2." would not be the case, I could make my situation work by posting an announcement notification whenever the user presses arrow up/down in the text field, passing the text field as first argument (since I expect the user to have both keyboard focus and especially VO cursor on the text field) and the text requested to be spoken would of course be the one representing the currently selected table view row.

Is “2." a bug (in which case I will file a bug; it does feel like a bug)? Can 2. be somehow reasonably overcome in this situation?

I have a sample code which demonstrates the above, I can share it if it would be useful, but I guess the problem could be clear from the above description.

Thanks,
Boris

On Dec 14, 2013, at 5:41 AM, Josh Scotland <email@hidden> wrote:

Hey Nick,

This is tricky to solve and I don’t know of a good paradigm. The UI you’re describing sounds very similar to the way tagging documents via the properties popover is done where there’s a text field associated with a table of matches inside a popover. VoiceOver has a hard time figuring out what has focus (text field vs table) and what to speak when things change.

Given that this type of UI is becoming more common, please file a bug saying that VoiceOver should work better in these cases.

Thanks,
Josh

On Dec 4, 2013, at 6:10 AM, Nick Kocharhook <email@hidden> wrote:

I have an NSTextView subclass which is tied to an NSTableView. They are tied together and look like this:

{mono}
+===============+
| |Nam<cur>   | |
|               |
| +- - - - - -+ |
| | Name 1    | |
| | Name 2    | |
| | Namibia   | |
| |           | |
| +- - - - - -+ |
+===============+
{mono}

The text view behaves like a token field, but without a menu.

1. When the user enters characters, it narrows down the contents of the table view.
2. When the user presses the down/up arrows, the selection in the table view changes, while the cursor doesn’t move in the text view.
3. When the user has selected a row in the table view and presses Return, the text fragment in the the text view is replaced with a token representing the selected item and the table view is refilled with all the options.

This all works fine for sighted users, but is pretty broken in VO. Here’s what a VO user currently has to do:

1. User enters characters, but gets no feedback that there are items that have matched in the table view.
2. When the user presses the down arrow, the VO cursor moves to the table view, meaning the user can’t enter anything else without returning to the text view.
2b. If the user instead does VO-Shift-down to interact with the text view, then up and down result in “Top of document” and “Bottom of document” instead of moving the cursor in the table view.
3. To select a matched item, the user must move to the table view, interact with it, select a row and press Return. At this point, the user gets no feedback that the item has been tokenized and added to the text view.


What I’d like is something akin to how VO works in the Spotlight menu, or the Mail search field. Granted, both of those are menu-based, so perhaps not quite the same thing. But they do have the “leave the cursor in the field, but let the user select other items which get read out to them with up/down” that we’re looking for. I’d like to avoid using a menu since the number of items in the table view could be many hundreds. This whole control group is in an NSPopover.

Is there a paradigm I'm missing that would retain the ease of use for sighted users but make this control group more transparent to VO users? Or should this work as-is, and I'm simply not using the VO tools in the right way to make this UI accessible?

Thanks in advance for your thoughts,
-Nick
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
  • Follow-Ups:
    • Re: Make a text view/table view pair accessible
      • From: Josh Scotland <email@hidden>
  • Prev by Date: What applications use AXLayoutChanged?
  • Next by Date: Re: What applications use AXLayoutChanged?
  • Previous by thread: Re: What applications use AXLayoutChanged?
  • Next by thread: Re: Make a text view/table view pair accessible
  • Index(es):
    • Date
    • Thread