I'm looking to make the Android app I work on more accessible, and was wondering if we need to do anything special to make it compatible with services like BrailleBack so it can be used with braille readers like this one:
https://uk.optelec.com/products/abc-640-en-uk-alva-bc640.html
We've already used tools like the accessibility scanner to help us identify changes that can make the app compatible with screen readers. Can anyone recommend any tutorials, etc. that can help us build compatibility with braille readers and services like BrailleBack? Or is it just very similar approach to services like TalkBack, technically speaking?
I've tried looking through Google's developer documentation and accessibility support, but no luck.
https://developer.android.com/guide/topics/ui/accessibility/additional-resources
https://support.google.com/accessibility/android#topic=6007234
It would be great to have an app that is better prepared for visually impaired users. Many thanks :-)
You have actually done everything correctly.
Braille Screens and Readers take the input from a screen reader and turn it into Braille.
BrailleBack interacts with Google TalkBack to turn the output from TalkBack into a format that a Braille Screen / Keyboard can understand.
If you can use the App with TalkBack with no accessibility issues then it should work with BrailleBack.
I am aware that some Apps have issues with scrolling past the first screen using a Braille display.
As far as I am aware this is a bug in BrailleBack but that may be the one area you need to research more as i have never experienced it personally and it is only second hand information colleagues have told me about in the past.
Related
I have seen so many apps that provide auto tapping feature. But they don't provide some specific customization so I decided to create a one. I have seen many tutorials that offers auto tapping, but they are supposed to be used in the same app. But I want to create an auto tapping app that can click on other app's View. I am an intermediate java developer but new to Android studio, so I don't know much about Android APIs. Is there any class or package which can provide this feature. For more clearance, I want to do auto tap, when the color at the specific location on screen, (213, 120) for instance, becomes green.
Thanks in advance!
I am not an expert on the subject, I have experience as a BackEnd developer, I am new to the Android world, just like you I am interested in building an app to automate some farming mechanics in Android games with specific behaviors, so I investigated on the subject and the solution you are looking for is the AccessibilityService API, from Android 8.0 (API level 26) it includes several functionalities to make touches without the need for Root, I leave you links with examples of some open source repos that can guide you.
https://developer.android.com/guide/topics/ui/accessibility/service#continued-gestures (Doc)
https://github.com/nestorm001/AutoClicker (Old and abandoned project, but has the functionality of touches)
https://github.com/pylapp/SmoothClicker (A more mature App but need root, it can be helpful to guide you in how to build the UI)
For the detection in the change of the pixel I still do not have a concrete answer, I keep looking, maybe obtaining a dump of the screen every X time and validate the pixels on that is the way but it is still uncertain if it is the way to go.
Something like How to record screen and take screenshots, using Android API?.
I know that you can get a bitmap dump of the screen if you have the activity, but it's not the case, however some class in the following package may be helpful https://developer.android.com/reference/kotlin/android/graphics/package-summary.
I'm currently working in my own implementation, when I have something to show I will gladly share it.
Think you ideally needed to mark up or censor a list of keywords in visual output systemwide, yet cant require to root devices.
That still works on websites through browser plugins.
But is it any thinkable to mess with popular apps like whatsapp, facebook, (one at a time) ?
Reading: I know it is possible to read/change some text inputs yet not generally/all? http://developer.android.com/training/accessibility/service.html
A universal way for markup could be determining screen coordinate positions of contents by OCR and set transparent overlays on the fly + algined smooth with scrolling, just not convinced how well this can both work and be battery efficient (we could cope with low accuracy in text recognition)
I'm adding all my reputation as a bounty.
Laying out a good way for any one popular app (top 20 social apps) qualifies as an accepted answer!
Laying out solution for "1." only but for two or more apps also qualifies.
Showing specifically why/where it will work with one app but not with another also qualifies as an accepted answer.
You cannot modify the visual output of an app. The closest thing you can do to accomplish this is like what Facebook Messenger and LastPass use, which is a feature that allows them to draw over the top of other apps, and LastPass specifically can also read the contents of another app via accessibility permissions. However, that just allows them to draw over the existing apps, and in the case of LastPass, fill out text into input fields. Even with the above options, I don't think you'll be able to accomplish what you're looking to do.
I don't think it's possible. Each app on the Android runs in its own sandboxed environment. You can only communicate through Intents with other applications. So unless they're listening for bad Intents(which I hope they're not), you can't really do anything to those applications.
I am making my application accessibility compliant. for this providing correct data to the accessibility framework by giving android:contentDescription="your string" in xml.
Also I have Seen the Android Developer guide on Making Applications Accessible for an overview of what steps you need to take to ensure your application works correctly with accessibility services.
Now problem is testing these all in each and every screen taking more time. my app has 30 screens and each time to go to any module will take almost 15-20 mins when talk back is on.
can anyone suggest tool/ better way to test app?
#unof is right, one tool you can use is lint to show you some warnings for missing content description.
I'm also experimenting with the Google Accessibility Test framework, it can help you to automate some of your tests:
https://github.com/google/Accessibility-Test-Framework-for-Android
Besides that also a good advice is to use an emulator that supports talk back, I'm using Genymotion with Gapps installed and is much easier/faster for some cases than using the actual device, if you are going to test multiple gestures, I'll recommend using Genymotion remote control feature:
https://docs.genymotion.com/Content/03_Virtual_Devices/Emulating_sensors_and_features/Remote_control.htm
it's very handy in situations when you need to track your network request while using the two fingers for scroll as accessibility requires.
Still is a manual task you will have to do, so try to tweak it.
Go to the Accessibility settings and increase the speed at which the text is spoken:
http://developer.android.com/design/patterns/accessibility.html#tools
It's also helpful to learn some of the gestures, and to explore the TalkBack settings:
https://support.google.com/accessibility/android/answer/6006589?hl=en
I hope it helps!
I've read numerous discussions lately about different forms of security for mobile devices outside of the typical password/pin code setup.
The articles talk about recognizing the touchscreen as a human input device and that security measures in apps ought to evolve for that as well.
One such concept involved a graphical keylock like one you would see on a safe. The would have to use multiple fingers to twist it to the correct combination. I haven't done any OpenGL stuff so I wouldn't really know how to develop that, has it been done, is it open source?
I did read this: Security Beyond a Username/Password? , but I am looking for other opinions.
Thanks for any suggestions and resources. Also please post resources instead of voting to close if it comes down to that.
I cann't say for all mobile devices, but iOS SDK provides UIGestureRecognizer class, you may create a subclass that UIGestureRecognizer that recognizes a distinctive gesture, character or some kind of gesture combination (in your case). I assume another mobile technologies also have similar methods to recognize keylock characters.
Hope it help you.
I new to Moai development.I need to get user input by displaying edit box and combo control. However I could't find any sample how to get user input by standard control. I have seen MOAITextBox document but no clue how to use this control to get user input.
Thanks.
This is answered quite well on their forum.
Basically, for a desktop application you can you Lua's IO library.
For a mobile device, you need to initiate the device's keyboard. It is explained fairly well on the forum. Hope this helps!
To expand on the above answer a bit...
Moai is not really designed for this sort of thing. It's mostly about providing a fairly low-level framework for graphics/games that can be targeted to different devices. This works great if your game has a sui-generis interface with it's own buttons etc but works less well the minute you start wanting to use standard UI controls on whichever platform you happen to be running on.
One could build a UI-library on top of Moai and there are people doing that but but it's not something that's wrapped up in Moai itself.