VoiceOver, but not Speak Screen talking on iOS 9 - ios

I have a page on an iOS app, that really consists of a series of custom buttons. The buttons are in a view hierarchy that consists of two labels and an image view behind them.
For accessibility support, I have made the two labels hidden to the accessibility system, to prevent accessibility focus from going onto each of the labels rather than the parent button. Accordingly, I have made the contents of one of these labels the accessibility label of the button, and the other the button's accessibility hint. This works well in VoiceOver, focus is moving between the buttons, with explanations of what they are and what they do.
Now when I use Speak Screen, I end with up a result of "No speakable content could be found on the screen." I expected it to speak the contents of the screen. Part of this is because I have set the labels to be hidden to accessibility, but this should be compensated for by speaking accessibility labels of the buttons.
Looking over some other apps and quick tests I have been doing, I am frequently seeing that Speak Screen seems to skip over buttons. I could give my buttons the accessibility trait of 'Static Text' in addition to button, but this seems like a misuse of the traits.
Is it the intended behaviour of Speak Screen to skip buttons or other controls? Is there a way to prevent the individual labels from gaining accessibility focus, while still being visible to Speak Screen?

As per my earlier comment, I am listening for the UIAccessibilitySpeakScreenStatusDidChangeNotification and checking Speak Screen's status with UIAccessibilityIsSpeakScreenEnabled. If Speak Screen is enabled, I am changing the labels to be shown or hidden to accessibility accordingly.

Related

How to reduce the size of iPad on board keyboard?

I am using My own custom Keyboard .
It Loading On iPad keyboard.
My Keyboard view having only some keys, So when I load the keyboard all button's size become bigger .
I want to reduce the size of on board Keyboard.
As far as I understand your question, you want a customized keyboard instead of the standard one.
If so, you may want to take a look at this helpful link:
http://blog.carbonfive.com/2012/03/12/customizing-the-ios-keyboard/
Apple on creating custom input views:
https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html#//apple_ref/doc/uid/TP40009542-CH12-SW2
(Referenced from How to create a custom keyboard)

Main Menu Button Grid iOS

There are plenty of good grid-of-button controls out there (such as GMGridView) and tutorials around UICollectionView (here).
However, they all seem to focus on imitating the look and feel of the Springboard of Photos app.
I'm looking for something that is more like the main menu you might see in a game. Where if I had one button, I want it to fill my view and be centered. Two buttons I would expect to share the space. Five buttons would have either a button on top (or below) a box of four buttons centered.
Is this sort of dynamic sizing of buttons to fill its parent container and centered of controls into columns easily accomplished with UICollectionView or would it be better to head down the path of something custom where I have a fixed layout support for, say, 1 - 5 button configurations.

Can part of an AppleWatch interface scroll independently?

I've got a WatchKit app that consists of a label and a couple of buttons. The label's contents might be long enough to cause scrolling, but I want the buttons to stay onscreen. Is it possible to have the label content scroll instead of the whole screen?
I've tried embedding the label in a WKInterfaceGroup, but the height of the label gets constrained to the height of the group.
I also tried to find a way to do this, but I couldn't find anything. Based on the simple flow layout for a Watch App UI I am pretty sure this can't be done.
(I am going to guess I was trying to do the same/similar UI as you ;)

Changing VoiceOver's scrolling/paging distance on a UITableView

I have a screen in my app that consists of a UITableView with another opaque view overhanging on the top (which is also interactive). The content offset is set correctly such that the entire tableView is visible to a sighted user.
However, when using VoiceOver and paging up/down with three fingers the default scroll distance will place part of the tableView under the overhanging view, and thus prevent VoiceOver from reading part of the tableView[1].
Is there any way to change how tall a "page" is when using VoiceOver?
[1]: I know that there are still ways to cycle through all the elements, etc, but it's far easier and more discoverable for partially sighted users to skim over elements with their finger.
I think you are looking for this: https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAccessibilityAction_Protocol/index.html#//apple_ref/occ/instm/NSObject/accessibilityScroll:
Re implement that method and scroll the amount of pixels you require instead of a whole page

IOS - How to get my text view object information to scroll on view?

I am using Mac OS X Lion 10.7.5 and XCode Version 4.6.1 (4H512),
I have looked at these answers on stackoverflow to try to figure out my question
-cannot make a text view scroll - xcode 4.3
-also posts that looked possible, when I searched on "scroll text in UITextView" within stackoverflow
Within Interface Builder I cannot figure out how to make information in a UiTextView object scroll within the iPhone simulator*. To resolve this challenge, I have made the most simple prototype project I can think of, just a view and one text view object on it, filling the text view object with a stream of text simply typed in via interface builder. For this most basic sample I'm using to sort out my problem, I have not done anything programatic. (Please note that I am aware of StoryBoards and have begun working through a book to learn to use them, but I would like to finish my first prototype app using what I’ve already learned and fully complete one project before I move onto my next project using StoryBoards.)
When I run this in the iPhone simulator, I see the sample information in my text view object come up. As I expected not all the information displays, due to my sizing the box a little too small on purpose. But I cannot flick or arrow down, or in any other way view the rest of the text information within the simulator. Nor do I see scrolling bars anywhere on the view. The information is just frozen in/on the view.
Inspector Settings
Identity Inspector
"Accessibility" Tested both with Enabled checked and not checked
Use Auto Layout is NOT checked
Attributes Inspector
Behavior Editable box not checked
Scroll View Area Checked ‘show horizontal scrollers, shows vertical scrollers and also scrolling enabled” The rest of the scrollers box are not checked
Bounces is checked
Zoom min and max are both 1
Touch all boxes checked- bounces zoom, delays content touches, cancellable content touches
View mode is ‘scale to fill”
Interaction ‘multiple touch’ is checked
Drawing checked opaque, clears graphics context, clip subviews, and autoresize subviews. Only ‘hidden’ is not checked
Size Inspector
I played around with the ‘scrolling insets’ boxes changing them from the default (I think it was 0 or 1), just to see if I noticed anything. I think maybe that I see some shadowy marker type lines in Interface builder in the area where I might expect a scroll bar when I make these changes, but no change in appearance within the simulator.
I cannot figure out why my actual iPhone device with everything up to date, is now not working as a test device, but I believe that is a separate challenge
how about wrapping you uitextfield in a uiscrollview. Make the scroll view the dimensions you currently are setting the uitextfield to, then allow your uitextfield to scale to the size of the text.
This is one of those questions that solved itself eventually. After twice creating the most basic app, with no programmatic bits just interface builder and a textView object with all the defaults the scrolling worked. The only reason I can think of that it might not have scrolled as expected the first time through may have had to do with placement of the textView object on the view. I wonder if it overlapped the bottom of the view and maybe that messes something up.
Just one of those situations where I had to keep plugging away, trying what seemed like the same thing repeatedly,set in the Inspectors, and suddenly, like magic, it worked. Except no magic involved.

Resources