Android OS Accessibility allows developers to integrate their own tts engines into eyes-free api. I want to add a custom text-to-speech engine (and voices) also into ios environment, with the same API used by Voiceover. Lets say, I just want to go to
Settings -> General -> Accessibility -> Speak Selection -> select custom X engine & voice
Is it possible?
No, it is currently not possible. If you are interested in the answer to this question changing in the future, I suggest you file a bug with Apple asking them to implement a publish such an extension point (it would take effect probably not only in VoiceOver, but also in Siri and in general in AVSpeechSynthesizer). I am sure some TTS companies already did file such a bug (at least), but the more people complain about it, the more likely or soon this feature will be implemented.
Related
I have an task to make ours company application more voice controlled. To do this I would like to integrate it with Siri the same way like Facebook app integrates (Look at the screens). How can I accomplish this. I was looking for some frameworks on Apple side that can let me do it but I can't find any suitable framework to do it. I know this must be something like service extension or app extension that is starting with iOS (not with my application) because Siri knows that the Facebook is integrating with it even when the Facebook app is turned off. Take a look at those screens to see what kind of integration I'm talking about. This screens can be opened when I say to Siri: "What can You do":
As the comment mentioned, Apple decided to partner with certain companies and integrate these features into the OS and it's impossible for you to do so yourself. If you go to the Settings menu, you'll notice you can link your Facebook/Twitter/Flickr/Vimeo account even if you don't have the corresponding apps installed.
Is it possible to write new accessibility services for iOS? It's easy to find info about how to make write apps so they are accessible, but I want to write a new service that has capabilities like a screen reader would have, and that works with existing apps.
From what I can tell, it's possible on Android with the Accessibility Service, on Windows with UI Automation, and OS X with Accessibility Framework. But I can't figure out if iOS has a similar capability.
The short answer is no. The long answer is what you are asking to do is a system utility and on the iOS platform developers are only allowed to write applications that are for the most part sandboxed I.E. they can only interact with themselves or apps by the same developer. They are forbidden from accessing data from other apps on the device. Developers also have no access to what so ever to system files that control things like font size and text to speech. Apple exercises tight control over their OS to maintain a stable platform.
Hope this answered your question!
You can't define a new system-wide service, but you can customize the existing services pretty heavily in your apps.
You can disable the default accessibility controls for a view:
view.accessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction;
view.isAccessibilityElement = YES;
You can use the informal accessibility protocol to define your own VO cursor frames, and post UIAccessibilityLayoutChangedNotification notifications to make VoiceOver speak.
Let's say I develop audio player for iPod Touch 4/iPhone. Currently it can be controlled with standard panel (double click Home and scroll left).
But how can I control that with built-in voice control (long click on Home)?
Apple has a VoiceServices framework (more info here) that may do what you want. Unfortunately, the VoiceServices framework is not part of the public SDK and it can't be used in apps submitted to the store.
how can I control that with built-in voice control
There's a new iOS 13 feature called Voice Control that may help you to control your application and your device more generally with your voice.
Activate this feature in your device settings Accessibility - Voice Control as follows:
Take a look at the Customize Commands menu to dive into the vocal commands.
The only thing to do as a developer is eventually to adapt the accessibilityUserInputLabels properties if you need specific names to be displayed for some items.
The Voice Control feature is definitely THE built-in tool to reach your purpose.
Is it possible to take advantage of the international keyboard feature for the iPhone and create a custom keyboard that can be used over the entire phone not just within a particular app?
Similar to the Emoji keyboard but I'm under the impression that's somehow native to iOS and is just disabled by default?
I've looked at a lot of the questions on here regarding this, I'd just like to get a definitive answer.
As per Apple's submission guidelines:
2.5 Apps that use non-public APIs will be rejected
2.6 Apps that read or write data outside its designated container area will be rejected
There are no public APIs to add an additional keyboard.
The files that store keyboard data are definitely stored outside of your app's container.
In short: There is no way to implement a custom global keyboard on a non-jailbroken iOS device at this point in time.
As of iOS 8 you can now create custom keyboard extensions: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html
#0x90
this App adds an international keyboard to iOS (a keyboard you will see in your iOS general settings)
http://itunes.apple.com/us/app/emoji-free!/id332509635?mt=8
how did they manage to do it?
--
EDIT: i'm sorry for not searching it before, this should be the answer
Making An Emoji Enabeling App
The best way i found is to add shortcuts.
Go in the keyboard setting and paste the symbols you copied from a document or safari and give it a shortcut. For exemple: for √ i used ss. So i just double the first letter of the thing. Or for an exponent like ², i just use 22.
It takes a while to setup but its an easy way instead of switching between the symbol app and do a copy and paste every time. And for greek symbols, i just installed the greek keyboard.
Have fun.
The Android platform has a RatingBar widget. I believe there is a similar field for BlackBerry because BlackBerry AppWorld uses a rating bar. What field are they are using for that?
I was browsing another question on StackOverflow and found a reference to a BlackBerry knowledge base article that includes sample code for a RatingField.
The corollary to an Android Widget on the BlackBerry is a Field. The BlackBerry Widget SDK is meant for doing web development specifically for BlackBerry devices. I've edited your question to reflect this.
The important aspect to know about BlackBerry development is that the operating system is not open-source. RIM has chosen to make some APIs available for app developers, but they have not opened up the entire platform. RIM is able to access the entire operating system when they write an app themselves - such as the Facebook or Twitter apps, but if you are writing an app as a third-party developer, you are limited to what has been exposed in their developer JDE.
AppWorld may well use a built-in field that does the rating stars, but, if it exists, that field is not available for third-party developers.
It is actually pretty common in the BlackBerry culture to write your own Field objects. There is a ButtonField in the JDE, for example. It works well if you want a button with text. But if you want to make a button that contains only an image, there is no built-in ImageButtonField to use, and you cannot set an image on a plain ButtonField. You have to write your own button field to handle this.