Is there any way to create a custom VoiceOver gesture? - ios

Is there any way to create a custom gesture in iOS specifically for VoiceOver users?
Thank you

I think this MIGHT be possible. The iOS Mail app (at least in iOS 6) seems to contain custom Voiceover actions (you can swipe up or down to enable a "delete" operation on a mail item in the list).
My guess is (and I haven't verified this, is that if you add a swipe recogonizer only when UIAccessibilityIsVoiceOverRunning() returns true.
I haven't tested this yet.

I'm almost certain that this is not possible. That said, the accessibility APIs allow you to do things like speak content when a view changes, so maybe you could use this?
You mentioned a gesture specifically for Voiceover users - if Voiceover users are the majority of your audience, then you could just provide a standard gesture, which Voiceover users could invoke by double tapping and holding to pass the gesture through, and then performing the gesture itself.
For example, to "pull to refresh" a Voiceover user would double tap, hold, then pull down.

Related

iOS accessibility: what are the pros/cons for hardcoding "double tap to activate" as hint?

iOS has built-in support for accessibility, for UIButtons it reads the title of the button followed by a hint "double tap to activate" (by default). Sometimes we are required to make a non-UIButton control behaving similar to UIButton in terms of accessibility, so we would set its accessibility trait to button and hardcode "double tap to activate" for accessibilityHint.
I don't like altering system behaviours, and I've seen accessibility users who prefer single tap instead of double tap (there's an option they can set), although I haven't checked if the opt for single tap instead of double tap, does the system hint become "single tap to activiate".
What is the common practice regarding accessibility support for a non-UIButton control that is tappable? Thanks!
I've seen accessibility users who prefer single tap instead of double tap (there's an option they can set)
I'm really curious to know how it's possible using VoiceOver because a single tap with one finger deals with the accessibility focus. In the UIButton documentation, Apple states: 🤓
VoiceOver speaks the value of the title [...] when a user taps the button once.
Would you mind detailing the way to activate this option you mentioned because I'm really astonished, please? 🤔
What is the common practice regarding accessibility support for a non-UIButton control that is tappable?
Using a hint is a very good practice to provide useful information to the user but this information mustn't be crucial for using because the accessibility hint may be deactivated in the device settings.😰
Admittedly speaking, this kind of element must be read out in such a way that its goal and its using are clear enough for any user: that's what traits are made for. 👍
Many traits are well known and give rise to different actions like adjustable values, customed actions and the rotor items using.
Besides, it's also possible to use the accessibilityActivate() method so as to define the purpose of a double-tap with one finger of an accessible element. 🤯
The way you want to vocally expose the possible actions on a tappable control depends on the content of your application.
Finally, keep in mind that hardcoding a hint must be understood as a plus information but definitely not as an essential one because it can be deactivated by the user: a conception oriented a11y is very important when building an app. 😉

how to implement drag and drop like shortcuts which developed by apple?

I know how to enable drag and drop for tableview in iOS. But the default behavior of it looks strange. User must press a cell for a long time to enable drag. I have read some answers said that changed the minimumPressDuration to 0.1. I had tried this way, but I don't think it's good enough.
What I want likes shortcuts app showed which is simulously.

iOS AudioKit using `AKKeyboardView`

The question is very simple. Is it possible to programmatically send a note on/off so it will show on the keyboard view? What I'm trying to do is link the AKMIDICallbackInstrument to the keyboard.
There was an article about doing something similar but it doesn't seem to be possible. (Thinking about it, the keyboard delegate should be the one handling keyboard view touch events, not the other way around...) Also checked the AKKeyboardView code, but it seems like there are only touch related code.
If there is no such method, are there plans to add them?
Two methods have been added to AKKeyboardView on the develop branch of AudioKit:
programmaticNoteOn(_ note: MIDINoteNumber)
programmaticNoteOff(_ note: MIDINoteNumber)
These allow you to programmatically simulate key presses and key releases without calling the delegate.

How can I prevent multitouch in Xamarin Forms (specifically iOS project)?

We have a project with a chat page. In this page, when the user simultaneously taps the text entry box and outside of the box, we have undesired behavior. The text entry box moves to make room for the keyboard but the keyboard does not display. We have an Android and iOS project, but this only occurs in the iOS side.
I believe disabling multitouch would be a good option here because we do not use any multitouch gestures. However, I cannot find any information about how to successfully accomplish this. I have read about doing something like TouchesBegan, but it did not work for me.
You can't disable multitouch throughout your app as the iOS SDK just does not allow this.
You could use ExclusiveTouch on a view to block touch events from other views while this one is receiving a touch event.

How can I disable gestures in the ios simulator?

I am trying to test out my site using the ios simulator and I don't want the default double-tap gesture to work when the user double-clicks, since it is interfering with my site.
Is there any way to disable the double-tap gesture either in the simulator or in the code?
I don't think it's possible to disable just the double tap gesture, and it may not be possible to disable at all.
The relavant references are the Safari Web Content Guide and the GestureEvent Class Reference. The first says that double tap doesn't produce a gesture event. It's possible that suppressing lower level touch events will cause the double tap not to be recognized, but that will also cause other gestures not to be recognized, which it sounds like you don't want. There are other things you can do as well such as restricting the zoom range for the site, but they all have other side effects that you may not want
I have not tried this, but see if you can add a doubleTap GestureRecognizer to your webView and do nothing in the target function.
On a side note, if your website is meant to be viewed on mobile devices, it would be advisable to leave alone the double tap gesture, as it is the standard way of zooming.

Resources