• 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
Updating accessibilityLabel does not trigger refresh of braille displays
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Updating accessibilityLabel does not trigger refresh of braille displays


  • Subject: Updating accessibilityLabel does not trigger refresh of braille displays
  • From: Chi Cheung <email@hidden>
  • Date: Tue, 16 Sep 2014 20:26:55 +1000

Hi,

For my iOS app, I have a number of elements in an UIView, some of them are standard, straight from the object library, while others custom.

I would like to have the connected braille display refresh whenever the accessibilityLabel for the element with the AccessibilityElementFocus is updated. Just like what would happen when the AccessibilityElementFocus is placed on the clock on the iPad's statusBar.

I found that different elements behaved differently with regards to the update of the accessibilityLabel and the refresh of the connected braille display. I.e. The braille display is refreshed and new value announced by VoiceOver when a UIProgressView gets a new value (and with it having the AccessibilityElementFocus, but the new value is not announced nor braille display refreshed when an UILabel is updated. Tapping the UILabel will trigger a VoiceOver announcement of the updated value, without a refresh of the braille display. The only way I managed to get the braille display to refresh is to move the AccessibilityElementFocus away to another element and then back to the UILabel. I had similar issue with a custom UIView failing to refresh the braille display on update of its accessibilityLabel.

The accessibilityTraits for the elements are set to the same values from within the identity inspector: Static Text:NO, Summary Element:YES, Updates Frequently:NO, User Interaction Enabled:YES

I tried the following with not much success and am hoping others have been able to overcome this issue and make their apps accessible with braille displays. If so, please let me know what I'm missing. (Warning: an extended explanation below)

1.UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, newLabel); //newLabel is a NSString that is also set as the accessibilityLabel. This posts the updated value to VoiceOver and the braille display, where the updated value is announced and shown temporarily on the braille display, before reverting back to the old value. I need the braille display to show the updated value without reverting back.
2. UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.label); This caused VoiceOver to focus on the label and announce the accessibilityLabel, but did not trigger an update to the braille display.
3. UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.progress);
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.label); This did not trigger an update to the braille display.
4. Updating UIAccessibilityValue rather than UIAccessibilityLabel did not trigger an update to the braille display.
5. self.label.accessibilityTraits = self.progress.accessibilityTraits; This did not trigger an update to the braille display.

Note: I used storyboard and tested the accessibility with a Humanware Brailliant 32 connected to an iPad Air with iOS 7.1.1

To show what I'm talking about, I've uploaded a sample app to GitHub https://github.com/rcycheung/acessibilityTestBrailleDisplay

The ViewController of the sample app contains 3 elements:
1. a stepper to manually increment the counter (maximum of 100)
2. an accessible progressView (a subclass of UIProgressView, with a custom accessibilityLabel) to display the counter value
3. an UILabel to display the text of the progressView's accessibilityLabel

A motionEvent was added to increment the counter, in order to avoid having the change the AccessibilityElementFocus in order to update the counter's and the elements' value.

Place the AccessibilityElementFocus on the progressView, with VoiceOver enabled and brailleDisplay connected, then shake the iPad to increment the counter. The VoiceOver accessibilityAnnouncement should follow a second later to announce the new accessibilityLabel and value of the progressView and the brailleDisplay should update.

To illustrate the issue (keeping VoiceOver enabled and brailleDisplay connected) change the AccessibilityElementFocus to the UILabel, then shake the iPad to increment the counter again. The VoiceOver accessibilityAnnouncement should follow a second later to announce the new accessibilityLabel with the updated label shown on screen. However the braille display did not refresh for me.

Any pointers or other suggestions would be appreciated.

Many thanks,

Ray
 _______________________________________________
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

  • Prev by Date: Re: Customize the previous/next order of accessibility elements
  • Next by Date: Question re new NSAccessibility Protocol in Yosemite
  • Previous by thread: Re: Customize the previous/next order of accessibility elements
  • Next by thread: Question re new NSAccessibility Protocol in Yosemite
  • Index(es):
    • Date
    • Thread