I would like to create an Android Accessibility Application/Service.
This Accessibility app would be able to magnify any screen image produced by any application resident on the android device.
for example, I would like to be able to magnify...
the home screen
Settings menu and sub menus
I would like to magnify Text and images/icons etc..
I've googled and searched the android dev docs for hints/tips/ideas.
Sadly I've hit a dead end.
Is this type of Accessibility application impossible to develop on Android?
Jellybean - Android 4.2 - apparently has this functionality built-in - see this release article detailing new features in Jelly Bean: "Accessibility: Enable screen magnification to easily zoom or pan the entire screen to get a closer look. Visually impaired users can now enter full-screen magnification with a triple-tap on the screen"
Typically on mobile operating systems these features are built into the OS, and not something that a 3rd party can write; partly for security reasons (a magnifier would have access to the graphic output of other apps, so could in theory send screenshots containing sensitive information back to base on the sly) and partly because magnification is complex, in that it involves interfering with normal video output and also with touch input (touch input has to be scaled in the inverse way that the original graphics area, so that touching a magnified button goes to the right place).
There may be a way of doing this if you are prepared to root your device and poke around at the OS/driver level, but that's not going to help much if you want an app you can put in the store.
Related
Both Android and iPhone:
With a screen overlay, can it be used to activate parts of the screen, thereby simulating user actions, activating the underlying action areas on the screen, i.e. scrolling?
I found this floating window library but that may do the trick on Android, wondering if anyone else has suggestions?
With a screen overlay, can it be used to activate parts of the screen, thereby simulating user actions, activating the underlying action areas on the screen, i.e. scrolling?
No, on Android. Faking input into other apps has significant security ramifications. On Android, accessibility services have some limited ability to do this sort of thing, which is why Google is starting to restrict their distribution. And, of course, on a rooted device you will have more options.
Hey I'm a web developer and I'm looking for a way to emulate mobile devices which also displays their respective navigation bars, toolbars etc. In the 'Device toolbar' in Google Chrome (v58 on macOS) there's a specific mode available for the Nexus 5X (and 'supported devices', according to Google), which is exactly what I'm looking for (see screenshot below), however I can't seem to find a way to turn this on for other devices (such as iPhones, Galaxys etc).
Of course these bars would differ between the devices and the browser that it's running, so ideally I'm looking for a way to manually specify the height of the bars and how they interact with the viewport (e.g. iOS Safari includes the top bar in the viewport height calculation but leaves out the bottom bar, which kinda screws with how the bottom of the page is being displayed (as discussed here)).
Ultimately what I'm trying to achieve is a way to accurately simulate how a website would look on a specific device, by instead of looking at just screen sizes and pixel density actually taking in to account that there are other sections being displayed on the screen which of course takes up screen realestate themselves and affect the appearance and user experience.
All ideas are welcome =)
You can use Blisk browser, it's built on Chromium and supports toolbars and panels for IOS/Android devices, it has a good set of devices that you can emulate on.
I am developing an accessibility based application which lets users use the application using a bluetooth keyboard, hands-free. What I need now is for the users to be able to zoom in and out, in the application(and possibly the whole android system) using certain key-combo(say Ctrl+Alt+?).
The zoom should work something like the Magnification Gesture feature of the android accessibility settings.The magnification on that works on triple-tap to activate(which I want to activate by a certain key-combo) and pan around using two finger swipe( Which probably would be the direction keys from keyboard).
The only thing I have found even remotely related to doing something like this is the Android Accesibility Service. But I dont think it let's me get keyboard key-combo and then zoom-in the screen.
Is there any way we can do this in Android? Do I need to go AOSP and make my own Android OS version probably? Please help!
I have two questions that I can not answer to myself:
How can I change the size of my window, if I do not know the exact size of the phone screen? I.e. my aim is to fit all screen sizes.
Is there any difference between clicking with mouse and touching with fingers in the code? If I write code for clicking, will it work with touch?
On mobile, your app should automatically fill the phone screen. You don't need to worry about it. On desktop, you can use the --size=WxH option to test a specific screen size, or use the screen module (-m screen:nexus7 for example - run kivy with -m screen to see the available options).
No. All mouse/touchscreen interactions are considered touches in Kivy. So using on_touch_down/on_touch_move/on_touch_up will work regardless of the input device. The only difference is that with touchscreen you could have multi-touch - but if you write your app assuming single-touch it will work the same on both mobile and desktop.
We’re porting to Android some interactive iOS apps used to teach young children with learning disabilities. We have hit a major usability issue, because we can't figure out how to disable physical or on-screen navigation buttons (Home and Recent Apps).
Before anyone says “you don’t want to do that”, we fully understand why you would always want these buttons enabled for an able-bodied adult, but these children pose a unique set of accessibility issues. Specifically:
Their fine motor control may be poor - they may inadvertently touch a different area of the screen to the area they intend, or accidentally use more than one finger at once.
They may have weak muscle tone and poor physical strength – so e.g. the bottom of the palm of their hand may drop and touch the screen while trying to just use a finger.
They struggle to achieve and easily become disheartened or disruptive if they fail.
For instance, a typical 5 year old child with Down syndrome will accidentally drop out of the app they are using as a result of inadvertently touching the Home button: when this happens repeatedly, and the adult teacher or parent has to go back into the app for them repeatedly, the child loses interest and focus. Another typical scenario is a young child with Autism, who may freak out completely and need physically restraining if this happens while using their favourite app. Also, many disabled children will try to poke any other button they can find, in search of a response. In any of these situations, a potentially valuable educational session may have to be completely abandoned.
We're aware of SYSTEM_UI_FLAG_HIDE_NAVIGATION and SYSTEM_UI_FLAG_LOW_PROFILE, but these only reduce the visibility of the on-screen buttons until the child touches some other part of the screen, and then they re-appear in a way that’s more distracting than if they were visible all the time.
On iOS there is the “Guided Access” feature that solves this problem trivially. Can we emulate anything similar on Android?
On iOS there is the “Guided Access” feature that solves this problem trivially.
Guided access appears to be a device setting, not something that developers enable unilaterally themselves, thank heavens.
Can we emulate anything similar on Android?
There is no similar device setting in stock Android.
You can download the Android source code, modify it as you see fit, build the results into a ROM mod, and install that ROM mod on devices as you see fit.
Or, you can perhaps work with a device manufacturer creating tablets aimed at children to see if either they have already added this capability to their devices, or would be willing to work with you to add such a capability in a future iteration of their devices.