How Hands-Free Scroll uses the Accessibility service
Screen recording · vn.fighttech.handsfreescroll · 7 November 2026
Hands-Free Scroll scrolls long pages (articles, web novels, recipes, sheet music, scripts) smoothly at a speed the user picks, so they can read without swiping. Android only lets an app perform swipe gestures in other apps through the Accessibility service, so the app asks for it. This page shows, on a real phone, exactly what a user sees and what the service does.
Recorded on a Google Pixel with Android 17. Duration about 1 min 33 s.
What the video shows
- 0:00 The service starts off. The home screen says scrolling needs to be set up. No panel is on the screen.
- 0:06 Prominent disclosure. “Set up” opens a full-screen explanation before any system setting. It lists what the service does, what it receives, and what it never does, with the buttons “I agree, continue” and “No thanks”.
- 0:22 “I agree, continue”. Only after consent the app shows step-by-step instructions and a button that opens Accessibility settings.
- 0:26 Android Accessibility settings. The user finds Hands-Free Scroll in the list of downloaded apps.
- 0:32 The service page. Android shows the app’s own description of how it uses the Accessibility API.
- 0:42 The user turns the service on. The user switches it on and confirms in Android’s own “Allow” dialog.
- 0:52 The floating panel appears. Back in the app, the setup screen says “All set” and the panel with play, speed and close buttons is on screen.
- 0:58 Practice page. “Try scrolling now” opens a sample page inside the app.
- 1:05 Scrolling in use. The user presses play and the page glides up; the user raises the speed with +. Nothing scrolls unless the user pressed play, and touching the page pauses it.
- 1:30 End of page. Scrolling stops by itself at the end of the page.
The user can turn the service off at any time with the × button on the panel or in Android Settings › Accessibility › Hands-Free Scroll.
The disclosure the user must accept
Before you turn it on. Hands-Free Scroll uses Android’s Accessibility API. Please read what it does with this permission before you continue.
What it does
- Performs swipe gestures on your screen, only after you press play, rewind or jump to the top or bottom, to scroll at the speed you choose.
- Shows a small floating panel with play, pause and speed buttons.
- Only in apps where you switch on “Auto-start when opened”: starts scrolling by itself after a countdown when you open that app. Off for every app unless you turn it on.
What it receives
- The name of the app in front, so the panel only appears in the apps you picked, your saved settings for that app are used, and auto-start works only in the apps you chose.
- Scroll-position numbers sent by the app you are reading, so scrolling can stop or repeat when you reach the end, find the top of the page, and show how far you are and the time left.
What it never does
- It does not read the text, images, passwords or other content on your screen.
- It does not tap buttons, type, or act in other apps beyond the scroll gestures you start.
- Everything stays on your device. Nothing it receives is stored, sent or shared.
Buttons: I agree, continue (shows how to turn the service on) · No thanks (closes, nothing changes).
Technical summary
- The service uses
dispatchGesture(canPerformGestures) to swipe, and only after the user pressed play (or, in apps where the user turned on auto-start, after a visible countdown). canRetrieveWindowContentisfalse: the service cannot read the screen, text or passwords.- It listens to two event types only,
typeWindowStateChanged(the package name of the app in front) andtypeViewScrolled(scroll-position numbers). - It is not marked as an accessibility tool (
isAccessibilityTool=false). - The panel is drawn as an accessibility overlay window.
- No data from the service is stored off the device or shared.