HandyXlateHandyXlate
Permissions

Screen Translators Without an Accessibility Service

An Accessibility Service permission can read everything you do on your phone. For a translation overlay, that is a lot of access to ask for. This page explains what the permission does, which apps ask for it, and how translation works without it.

4 min read

The short answer: an Accessibility Service is not required to translate text on your Android screen. Android provides a separate, narrower mechanism for exactly this job. The trade-off is that the two mechanisms read text in different ways, so they are not perfectly interchangeable.

What an Accessibility Service can actually do

Accessibility is an Android capability designed to let an app help a user with disabilities. It is powerful: an app holding it can read text from other apps, observe your taps, and detect content changes across the whole device. That power is what makes it useful for screen translation, and exactly what makes it a sensitive permission to hand to a translation app.

  • Read text from other apps, including messages and feeds
  • Observe where you tap and what you type
  • Watch the screen for content changes
  • Remain active in the background until you disable it
This is not a bug or a loophole

Accessibility exists on purpose, and some screen translation apps use it because it can pull text directly from an app's view hierarchy. The question is not whether the permission is legitimate. It is whether a tool that only draws a translation overlay needs that much access to do its job.

How translation works without it

Android's MediaProjection API is the built-in screen capture consent flow. You tap a system dialog, the app receives a single screen frame, and the capture ends when you stop. The app never receives a persistent handle to your screen. It gets one image, does its work, and the image is released.

Because the app is handed an image rather than a view hierarchy, it runs OCR to recognize the text before translating it. That is the trade: capture is narrower, and text recognition is the step that does the reading. HandyXlate runs that OCR on-device, so the screenshot does not have to leave your phone for the text to be read.

The two approaches compared

  • Accessibility Service: can read text straight from an app, including text that is not visible on screen; requires a persistent, device-wide permission
  • MediaProjection capture: receives a single screen frame after you approve it; requires OCR to read the text; holds no ongoing permission
  • HandyXlate uses the MediaProjection path and does not declare or call the AccessibilityService API at all
  • Some other apps use Accessibility for one mode and MediaProjection for another, so check which mode you are actually running
Check the mode before you judge an app

At least one popular screen translator defaults to a mode that does not use Accessibility, and switches to an Accessibility-based mode when you turn on chat translation. If you avoid Accessibility, confirm the mode you are in rather than assuming.

What you give up by not using Accessibility

It would be dishonest to claim there is no cost. Reading from a view hierarchy can be more accurate for some apps and can catch text that is rendered but not visible. The OCR route works from the pixels that are actually on screen, so it depends on legibility. If a region is very small, low contrast, or heavily stylized, OCR has less to work with.

In practice, the difference shows up mostly in games and apps that draw unusual type. For comments, subtitles, manga, and ordinary app text, on-device OCR handles it well.

Questions people ask about this permission

Do screen translators always need an Accessibility Service?+

No. Android's MediaProjection screen capture API can provide a screen frame for translation without any Accessibility permission. HandyXlate does not declare or call the AccessibilityService API.

Why does an app want Accessibility instead of screen capture?+

An Accessibility Service can read text directly from an app's view hierarchy, which is more precise for some apps and can pick up text that is not currently visible. That precision comes with a permission that can read the whole device.

Does HandyXlate upload my screenshots?+

No. OCR runs on your device and the screenshot is not uploaded. When you use an online translation engine, only the recognized text is sent, never the image.

Does it need root?+

No. It uses Android's standard screen-capture consent flow and the overlay permission.

Is offline translation available without Accessibility?+

Yes. On-device OCR runs on your phone, and on-device translation covers 59 languages — the app downloads the needed language models automatically. To be precise about the default: one-off translations use our online engines for the best quality, and only the recognized text is sent, never the screenshot. Switch to on-device translation in settings and every step stays on your phone. Free users get offline auto-translation automatically; Premium can prefer online engines or stay offline.

Android app

Translate your screen without an Accessibility Service

HandyXlate captures a single frame, reads it on-device, and places the translation back over the original screen. No Accessibility Service, no root, no ads.