I have an Android app built with Delphi 11.2 that works fine on the devices. However, when I submit the app to Google Play Console for testing, their auto testing reports warnings about Accessibility problems. The Pre-Launch report has a red rectangle highlighting the full screen of the app under the Content labeling section, with the recommendation "This item may not have a label readable by screen readers."
So, I started up TalkBack on my Android device, and it does the same thing. It shows a blue highlight around the whole app screen. If I try to press any of the buttons on the screen, I hear a beep and the highlight remains around the whole screen and nothing happens. It is like there is some object overlaying the whole app screen and not allowing access to any of the controls under it.
When I look at my source code, the only items that cover the full screen are the form itself and a TLayout item set to Client of the form. All of the controls are placed on top of the TLayout.
Has anyone else had problems like this with Android apps build with Delphi? If so, what do I need to do to fix the problem for screen readers not having access to the controls?
Related
I adjusted the COVID-19 data checkbox in my Wear OS watch face's play store settings. After submission I got an unexpected policy violation of "Your app’s Play Store listing provided a non-valid Wear OS screenshot which is framed within the device. A valid Wear OS screenshot must include the full-frame image of the app interface."
The whole round circle of the emulator is inside all 5 screenshots of my app, so I have the full-frame of the app, so the only explanation for this could be that the emulator little bezel was also visible around the app view area. So I wasted some hours and masked out the bezel and anything except the app screen with a transparent color.
Now I got another policy violation: "Your Wear OS screenshots include transparent backgrounds or masking.".
Until round PNGs are invented there must be something around the app area. I obviously opted for a transparent color, because I don't know if the user who browses the listing has their phone in dark mode or light mode. I assume if foolishly I decided on either white or black color masking, that would be a masking violation. How am I supposed to solve this? The email address of the policy violations are no-reply email addresses, so I cannot get help from there.
I guess the policy could be this guideline WO-F2. https://developer.android.com/docs/quality-guidelines/wear-app-quality#better
"The app must mention Wear OS in its Google Play Store listing and contain at least one screenshot that depicts the Wear OS app experience. Provide screenshots showing only your app interface. Don’t place your screenshots within device frames, or include additional text, graphics, or backgrounds that are not part of the interface of your app. Upload screenshots with a 1:1 aspect ratio. For more information, see Add preview assets to showcase your app."
Due to the roundness of wearables it's absolutely impossible to not have any background around my watch face app.
Here are my two watch faces with this violation:
https://play.google.com/store/apps/details?id=dev.csaba.vfdwatchface
https://play.google.com/store/apps/details?id=dev.csaba.complicationflowerwatchface
Attention against closing: although that Google Play Console Main Store Listing for Wear OS happens to answers my question, it does not have the specific policy violation message in the title, or EVEN IN THE TEXT. It's only on the screenshot, so no wonder I haven't found it when I searched for my problem before posting my issue. If we close my entry, I can 100% GUARANTEE you that others will open up similar entries over time, because they won't find that other issue either. Consider that please before voting for closing.
Dupe of Google Play Console Main Store Listing for Wear OS
You need a non-transparent background, preferably black.
I use fastlane for publishing my app, so I wrote this plugin for it's screenshots that automates this.
https://github.com/fastlane/fastlane/pull/20054
But you can do this manually with a photo editor, since the Android Studio screenshots either have transparent or a device frame.
The Google Sign-in experience on Android is broken on smaller screens (Samsung S9 pictured), and system font scaling nearing 2.0f. As a developer, are there any configuration options available to make this screen more accessible? Our implementation is basically derived from the official docs.
The middle part of the screen should display account information, but gets truncated by the header and the footer. The account picker itself is scrollable, so if at least a small portion of it is showing, the user can technically use it. If, however, it gets clipped completely like in my example, you can't access the relevant account picker part even with TalkBack.
The image is edited to remove the app name and logo.
I realy dint know how this screen is named :/ i called it after the message it shows when no app is running "your recent screens appear here". It basicly shows all apps currently runnning on the device.
So you know what im talking about here screens (sry big and spammy) with and without running apps. The second screen also shows the google widget i want to get rid off.
Is there a way to adjust the "your recent screens appear here" screen on Android phones and Tablets?
Is there a solution without using the Device Administration API?
If the Device Administration API is required - where can i find a documentation/tutorial that teaches me how to do it?
Currently we created a Launcher App for Android in order to deny access to most other Apps. It only shows our app and the android settings.
Unfortunately there is an Google Widget on the "your recent screens appear here" screen. It is the same widget shown on the Home screen, when using the default launcher. When i disable the Google Application the Widget disappears properly from the Home screen, but leaves a "Couldn´t add widget" message on the "your recent screens appear here" screen.
Currently we are looking for an easy solution to get rid of that widget.
there is actually no way to customize this page without changes in the OS.
still i found a workarround to get rid of the widget.
when starting an App i add a flag that prevents it from beeing displayed in the recent apps screen. this way the user only sees the empty recent apps screen which has no widget.
Intent i = manager.getLaunchIntentForPackage(apps.get(pos).name.toString());
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
HomeActivity.this.startActivity(i);
I am creating my first Adobe Air application from a Flash animation file via Flash Builder (I am an Android developer by trade.) One of the last updates I had to make was updating some of the text fields within the app to be dynamic so their text can be set at runtime via ActionScript.
When I view the app via the Adobe Air Simulator or push to an iOS device the buttons work fine, but when I push to an Android device some Buttons and Movie Clips are invisible. I can still click on the buttons if I touch where they should be on the screen but I cannot see them. In my testing of a fix I set the alpha of a button which is affected by this issue to 100 but it still shows as invisible.
Is this a known issue? How would I go about ensuring that all Buttons and Movie Clips are visible to the user?
Thanks,
Adam
Edit:
The only change to my code in order to set the text is running the following AS:
play_play.text = TranslationUtils.getTranslationText(TranslationUtils.PLAY_PLAY);
The AS for the TranslationUtils class is an external AS file which switchs through constants to return the correct text, based on the device's Capabilities.language
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.