Last updated on 30 October 2024
Let’s face it. Switching screen readers can feel like picking a new pair of shoes. We know our trusty old shoes, or TalkBacks in our case, have gotten us places, but maybe they’re a bit clunky and the voice sounds a tad monotonous. We head to the store, expecting a familiar brand, and then stumble upon a pair of sleek, feature-packed kicks with a label that reads “Jieshuo” in bold Chinese characters. That was pretty much my experience. Here is the (slightly embarrassing) story of how a curious tech explorer like myself ended up ditching TalkBack for a screen reader straight from China—with a name that sounds like a sneeze.
If someone had told me a year ago that I’d leave iOS VoiceOver and, in a daring leap, transition from Google TalkBack to Jieshuo, I’d probably have guffawed. But here I am, immersed in Jieshuo’s world of unique features and quirks, finding a richer, more adaptable Android experience I hadn’t realized I was missing. My journey with Jieshuo has been as enlightening as it has been surprising, and it’s added new life to accessibility tech in a way I didn’t quite expect. Jieshuo, for the uninitiated, is a feature-rich Android screen reader with some serious hidden gems. It’s also known as Commentary Screen Reader or CSR, for short.
Table of Contents
- Google’s geo-block and slow updates – why Jieshuo was worth the leap
- Premium features in Jieshuo – for power users and beyond
- Downloading and installation
- Setting up Jieshuo – a beginner’s guide with key steps
- Jieshuo’s AI capabilities – my AI Co-Pilot for complex descriptions and navigation
- The magic of instant and automatic translation
- Jieshuo’s function creation, the equivalent of JAWS scripts and NVDA add-ons
- Jieshuo’s quirks and challenges – the roadblocks on my journey
- Conclusion – an unexpected but fulfilling switch to Jieshuo
Google’s geo-block and slow updates – why Jieshuo was worth the leap
One of the first nudges toward Jieshuo came from Google’s restrictive policies around TalkBack. In a closed beta testing program, Google limits access to a few select countries, leaving many of us on the outside looking in. With the added frustration of Google’s slow response to user feedback, the appeal of Jieshuo and its active developer response became hard to ignore. It felt like moving from a restrictive neighborhood into a place where we’re free to explore and make the experience our own.
Premium features in Jieshuo – for power users and beyond
Jieshuo’s free version is packed with functionality, but its Plus version is where it truly shines. Premium adds features like enhanced OCR for offline and online text recognition, along with more detailed image descriptions, AI enhancements, and text recognition that feels as sophisticated as desktop solutions. Many Jieshuo customizations and features like additional TTS engine customization settings and AI capabilities are available for Plus users, and this article is mostly based on this enhanced release.
Also obtaining Jieshuo Plus was a task of its own, requiring a bit of navigating with PayPal and a workaround with mostly Chinese customer support. A small labyrinth, perhaps, but one that feels worth the $18 annual price once you unlock the full set of tools. Jieshuo Plus can be purchased and activated from its Settings > User Center window. For a list of unlocked features and options obtained through Jieshuo plus, please visit this AccessibleAndroid article.
Downloading and installation
Since Jieshuo isn’t on the Google Play Store (who doesn’t love a little scavenger hunt?), it should be downloaded from alternative sources. For an up-to-date link, head over to the Jieshuo page on AccessibleAndroid.com, where you’ll find the latest release link directly taken from the project’s Github page. You can also check out Jieshuo’s Releases page on Github for the developer’s official updates, including stable – and occasionally – beta builds. The official Jieshuo website also provides access to the latest beta and official releases.
Once downloaded, the installation process involves a few steps. First, your phone should be able to handle the installation of unknown apps to allow APKs from external sources. But that’s just the beginning. Jieshuo needs specific permissions to run smoothly for its advanced operations like “All files access,” necessary for running extensions or sound schemes though they’re not necessary for basic usage. These permissions aren’t automatically granted.
To grant permissions manually, Jieshuo provides a series of checks after its installation to make sure these permissions are enabled. Apart from Accessibility and Display Over Other Apps permissions, you’ll also need to allow Modify System Settings, again totally optional, and Background Activity, both of which help Jieshuo perform essential functions reliably. If manually setting each permission sounds tedious, Android apps like Skit Premium can streamline this by enabling all necessary permissions as the setup process concludes.
Once these permissions are in place, Jieshuo will be ready to go, but one can always return to them by going to Jieshuo’s Settings, selecting General Settings, and activating Setup Wizard.
In passing, it’s worth mentioning that for those looking to stay updated, the latest Jieshuo builds are also shared by several Android accessibility-focused channels on Telegram, ensuring you’re always in sync with the newest features—even without the Play Store. The app can also automatically check for its new, official releases if the proper setting is enabled in the Settings window. I’m jumping forward too fast, but this setting is in Jieshuo Settings > Advanced Settings > Other Settings > Automatically check for updates check box.
Setting up Jieshuo – a beginner’s guide with key steps
Setting up Jieshuo has a learning curve, but it’s manageable with the right steps. Here’s a relatively structured setup guide with specific options I’d recommend for those new to Jieshuo, capturing essential adjustments for a smooth start, and reflecting my own, personal, preferences.
Enabling Jieshuo Helper Service – say hello to TalkBack Spoofing
To ensure Jieshuo operates smoothly across Android, using what is known as TalkBack Spoofing is essential. To use this special Jieshuo service instead of the default one which gets turned on by default, we should go to our phone’s Settings > Accessibility > Installed apps, and make sure “Jieshuo Helper Service” is set to “On” instead of “Jieshuo Plus” or “Jieshuo.” This setting tricks Android into treating Jieshuo as its native screen reader, giving it better compatibility, and bypassing some of Android’s limitations. Having enabled the Helper Service, make sure other Jieshuo items there are turned off.
Jieshuo settings – where are they?
Again using the Jieshuo Helper Service, if we go to the phone’s Settings > Accessibility > Installed apps and select Jieshuo Helper Service, apart from enabling this important service we can set a shortcut for it, or access the screen reader’s Settings. Moreover, the Jieshuo Settings, called Screen Reader Settings, can be found in the app’s Main Menu, and this menu can be opened via a default gesture: down then right. Users also will be able to assign a gesture to bring up the Settings window, bypassing the app’s Main menu.
Anyhow, Jieshuo’s Settings window contains a long list of items such as General Settings, TTS Settings, Feedback Settings, and Operation Settings, and opening each one provides access to an even longer list of settings.
Inverting gestures for familiarity
If you’re coming from TalkBack or iOS VoiceOver, the Invert Gestures option is helpful. This setting can be altered from the Setup Wizard in the first place. But under Jieshuo’s General Settings, you can also enable Invert Gestures so swiping directions mirror TalkBack. This makes Jieshuo feel more intuitive, especially for those used to TalkBack’s navigation.
Hint: While you are so deep in the General settings window, I suggest checking the “Use custom gestures” check box if it’s not.
Customizing speech and text reading speed
These are very basic screen reader settings to adjust. A couple of TTS-related settings, such as TTS rate and TTS volume, can be adjusted under Jieshuo’s General Settings, but I highly recommend the dedicated TTS Settings window for that. TTS Settings can be altered in Jieshuo’s TTS Settings, by selecting the “Main TTS engine” item.
Hint Number 1: While you are in the TTS Settings window, select Other Settings. The important Jieshuo-exclusive “Pause speech while microphone is in use” check box is here, and should be checked by default. If not, do check it to prevent your TTS speech from being captured while recording audio in apps like WhatsApp.
Hint Number 2: While you are in Jieshuo’s Settings window, select Advanced Settings, Typing Settings, and check the “Read capital letters while typing” check box. I can’t understand why this important setting is turned off by default.
Jieshuo’s granularities and navigation styles – the equivalent of TalkBack reading controls
Granularities in Jieshuo let you control the level of detail with which you navigate text and content on your screen. Think of granularities as reading modes that allow you to move through text by characters, words, lines, sentences, paragraphs, or even custom units, depending on what you want to focus on. Other settings like Speech rate or Actions can be accessed via granularities. This flexibility is especially useful for reading, editing, and managing text precisely.
To access navigation styles related to Granularity settings, go to Jieshuo Settings > Operation Settings > Gestures Default Settings > Default navigation gestures style. Here you can view all the available styles to choose from. Your mileage may vary, but I’m using what Jieshuo calls “Default 2.” It allows me to swipe left and right to alter the focus, and use Up and Down for accessing shortcuts which I don’t use. As you’ll see later, I’ve also set up swiping up and down with three fingers to move to the previous or next navigation type. So if I swipe up with three fingers to select the Words navigation unit, I can then swipe up or down with one finger to read by word.
To add or remove items from the list of your granularities, both for basic or HTML-related navigation, again you can go to Jieshuo Settings > Operation Settings > Gestures Default Settings, and select either “Customize standard view element navigation,” or “Customize webpage element navigation,” respectively. For more on customizing Jieshuo granularities, please check this AccessibleAndroid article.
Controlling sound and haptic feedback settings
I don’t like any haptic feedback when using screen readers. So I went to Jieshuo’s Settings, Feedback Settings, and unchecked the “Haptic feedback” check box. Here I also used the “Sound scheme volume” control to decrease the volume of Jieshuo sounds. Jieshuo offers flexible theming options for its sounds, and one can also grab extra sound themes via the Feedback Settings window.
Disabling automatic notification reading
Notifications can quickly get overwhelming, so disabling automatic notification reading is one of the first steps you might want to take. Available from the Setup Wizard, too, you can also head to Jieshuo Settings > General, and uncheck the “Automatically Read Notifications from the Notifications Bar” check box. This adjustment ensures that announcement interruptions are kept to a minimum.
Hint Number 1: If you want more control over notifications and the way they are announced, head to Jieshuo’s Notification Reading settings. There you can set Jieshuo to, say, automatically read notifications only when the phone is unlocked.
Hint Number 2: Think of Jieshuo’s General Settings as a collection, or hodgepodge, of various useful items taken from other Jieshuo Setting windows. The idea is to provide you with a faster way to alter more important settings.
Enabling multi-finger gestures
Jieshuo fully supports multi-finger gestures. However – and much to my own dismay, they are disabled by default. To enable multi-finger gestures, open Jieshuo’s main window, open Operation Settings, and select the first item which says “Gestures default settings manage settings related to gesture default behavior and options.” Here check the “Use multi-finger gestures” check box.
Once this is enabled, return to the Operation settings window, and select the “Gesture scheme settings custom” window to see which multi-finger gestures are in use or which ones have no assigned functions. For instance, I’m using the following multi-finger gestures, and few of them are default Jieshuo-assigned, taking into account the fact that I’ve also modified some of Jieshuo’s own multi-finger gestures:
- Single tap with two fingers: direct click, default.
- Double tap with two fingers: play or pause, default.
- Triple tap with two fingers: automatic browsing function.
- Single tap with three fingers: Jieshuo’s settings function.
- Double tap with 3 fingers: copy last utterance, custom function (described later).
- Triple tap with three fingers: paste function.
- Swipe up with three fingers: previous navigation type function.
- Swipe down with three fingers: next navigation type function.
- Swipe left with three fingers: go back function.
- Swipe right with three fingers: recognize text of the current focused element function.
- Swipe up with four fingers: to top, default.
- Swipe down with four fingers: to end, default.
- Swipe left with four fingers: Functions menu function.
- Swipe right with four fingers: Recognition menu function.
- Single tap with four fingers: pause speech, custom function (described later).
- Double tap with four fingers: reading mode, default.
- Triple tap with four fingers: detailed description of focused item function.
- Double tap and hold with two fingers: virtual screen function.
- Double tap and hold with three fingers: enable/disable the screen curtain function.
- Double tap and hold with four fingers: recognize text on the current screen function.
I still have 3 extra multi-finger gestures here to which no functions have been assigned.
Hint: For a complete list of Jieshuo’s default gestures, please check this AccessibleAndroid article.
Disable wrap navigation for a VoiceOver-like experience
This is yet another Jieshuo-exclusive feature – something I preferred while I was on the iOS side. NVDA and JAWS also offer it for navigating in web/ HTML environments. To disable wrapping as you reach the top or bottom of the screen upon navigating around, open Jieshuo’s Operation Settings, select Navigation Settings, and uncheck the “Wrap navigation” check box.
Hearing the state of the focused item first
If you are like me and want to hear the state of focused items first before their names, such as Checked or Radio button selected, go to Jieshuo Settings, Reading Settings, Label Reading Settings, and check the “Read the state of the focused item first” check box.
Hearing uppercase letters when navigating
Oddly enough, this is also disabled by default. If you want to hear uppercase letters when navigating around letter by letter, go to Jieshuo Settings > Reading Settings > Character Explanation Settings, and check the “Read capital letters” check box.
One of Jieshuo’s unexpected strengths is its AI. Till a few months ago, Jieshuo’s AI prowess, text and image recognition capabilities were a step behind those of TalkBack. But now it offers features which even surpass TalkBack. For instance, Jieshuo can describe the entire screen. It can also virtualize the whole screen or recognize text on the entire screen, and selecting each item from the virtual screen activates that item.
Captchas, the bane of any screen reader user, are another area where Jieshuo’s AI shines. While no AI solution is perfect here, Jieshuo often identifies text or elements in Captchas, cutting down my need for assistance by a mile. It’s like having an AI co-pilot, not the Microsoft solution per se, smoothing out some of the rougher parts of the ride. Jieshuo’s offline OCR engine, which has recently become much more accurate, can recognize captchas, too.
Jieshuo’s Recognition menu, to which I’ve assigned the four-finger swipe right gesture, contains all recognition functions and controls. Items like Recognize the focused icon, Describe currently focused item, Describe entire screen, Detailed description of focused item, Detailed description of entire screen, Enquire by voice about current focus, Enquire by voice about the entire screen, Text recognition, Face recognition, Recognize captcha, Scene recognition, etc., can be found in this menu, and most of them can have their own gestures as well. The recognition results item, when activated, displays the recognition results from previous attempts, and one can select or copy them.
Jieshuo’s OCR-related settings can be found in Jieshuo Settings > Advanced Settings > OCR Settings. By default, it uses the online OCR, called “Tencent Cloud,” for OCR / text recognition tasks. However, one can switch to the “Offline OCR” choice here, and that’ll make the display of extracted text quite faster albeit a bit less accurate.
In passing, I should add that the new AI engine the developer uses, made available as part of the last beta release dated October 26, doesn’t support English by default and it uses translation to deliver the results. so if you set the source language in Translation Settings to a language other than Automatic or Chinese, you will end up with Chinese descriptions.
The magic of instant and automatic translation
The Instant Translation feature became one of my favorite tools as I adjusted to Jieshuo. Jieshuo also provides an automatic translation function. Assigning a quick gesture to Translate Current View in Jieshuo’s Settings lets me translate text on the fly, a function that’s saved me in situations with menus, documents, and even quick messages. The accuracy is really acceptable enough to help me catch the main points—especially when in a pinch.
Jieshuo’s translation settings can be found in Jieshuo Settings > Advanced Settings > Voice Assistant and Translation Settings. Here you can specify the source language, I suggest Automatic, the target language, your Search engine – I’ve set it to “Google,” and check or uncheck the “Automatically copy translation results to the clipboard” check box which is checked by default.
Having configured these settings, you can translate text in several ways: assign a gesture to the Translate function, Add OCR and translation to navigation types from navigation settings, Select Translation from the main menu after focusing on the text you want translated, or select Translate from the Recognition menu. The “Chat History” function, the first item in the Jieshuo’s Settings > Advanced Settings > Voice Assistant and Translation Settings window, holds the translated text for you to navigate and copy. But it displays translation results only when you use the Translation function not the one that can be selected as a navigation type. For the record, the “Chat History” also displays a history of Jieshuo’s Voice Assistant interactions – not covered here. What’s more, all translation results can also be found in the Recognition menu > Recognition Results window.
Jieshuo’s function creation, the equivalent of JAWS scripts and NVDA add-ons
While I can’t talk about all advanced features and settings found in Jieshuo, I’d like to mention one of them which has saved a lot of my time, and still keeps surprising me. In Jieshuo, we can assign gestures to functions, but those functions don’t necessarily need to be built into the screen reader by default. Savvy users can generate their own functions, or receive them from other users, add them to Jieshuo, and assign gestures to them.
To create a new function, we should go to Jieshuo Settings > Operation Settings > Gesture Scheme Settings Custom, and tap the “More options” item there, on the top right corner of the screen. Here we should select the “Create a new function” item and give it a name. Then type or paste the function code and save it. Finally, a gesture can be assigned to it in the “Gesture Scheme Settings Custom” window.
For instance, I’ve added a gesture to force Jieshuo to switch between the Media volume and Accessibility volume. Yet another Jieshuo exclusive, these volumes have their own strengths, with the Media volume providing ultra-high audio quality and the Accessibility volume providing enhanced volume flexibility. Jieshuo uses the Media/ Music volume by default, and this can be altered from Jieshuo Settings > TTS Settings > Main TTS Engine > Use Accessibility Volume check box.
At any event, use the following function to control the volume switch by a gesture:
if service.isUseAccessibilityVolume() then service.setUseAccessibilityVolume(false) else service.setUseAccessibilityVolume(true) service.speak("accessibility") end return true
And I’d like to share three more useful functions here for gesture binding:
- Copy the last spoken utterance:
text=service.getLastSpeakText()
service.copy(text)
return true - Pause speech, like pressing the Control key on the keyboard:
this.stop()
return true - Enable/disable audio ducking on the fly:
if audioFocusState == nil then
audioFocusState = false
end
function toggleAudioFocus()
if audioFocusState then
service.setAudioFocus(false)
audioFocusState = false
service.speak(“Audio focus disabled”)
else
service.setAudioFocus(true)
audioFocusState = true
service.speak(“Audio focus enabled”)
end
end
toggleAudioFocus()
return true
Jieshuo’s quirks and challenges – the roadblocks on my journey
Not everything has been smooth sailing, and had it not been for the awesome people, my talented colleagues behind AccessibleAndroid.com, I would have thrown in the towel. Between translation quirks like “Automatic Browsing” (which actually means Continuous Reading or Read from Current/Next item in the TalkBack world) and a lack of keystroke/Gesture help unlike all other screen readers, beginners may find Jieshuo overwhelming at first. There were times I found myself squinting at a setting’s name and had to reach out to Kareen Kiwan, my brilliant chaperone and the person behind most – if not all – Jieshuo guides on AccessibleAndroid.com for some context, just to understand what it did. And because it’s not available on the Google Play Store, downloading Jieshuo requires a bit of searching. Other quirks here and there, like multi-finger gestures being disabled by default, not hearing uppercase letters when typing or navigating by default, not supporting the Auto TTS app for continuous reading, or lack of access to a user manual only manage to add to the list of my gripes.
Getting help directly from the developer is a challenge, too. With Jieshuo’s development handled by a single, China-based creator, contacting them for support can be tricky, especially with language barriers. He’s so busy with development that only activation or bug reports are handled by him appropriately. The Chinese origins of the screen reader might also act as a showstopper for some. But for those serious about getting the most out of Jieshuo, the journey through these quirks feels like part of the experience—and the comprehensive and ever-growing Jieshuo section on AccessibleAndroid.com offers helpful resources and guides to make the learning curve easier. AccessibleAndroid also provides Telegram and WhatsApp groups dedicated to Android accessibility, and here people can pose their Jieshuo questions.
Conclusion – an unexpected but fulfilling switch to Jieshuo
Reflecting on my switch, the leap from iOS VoiceOver to Android surprised a lot of people, but embracing Jieshuo as my primary screen reader was the real twist. In many ways, Jieshuo reminds me of NVDA’s versatility and depth, making it feel like a fully customizable screen reader that adapts to my needs.
And I haven’t covered a lot in my article. Features like Jieshuo Voice Assistant, customizable shortcuts for hardware keyboards, extensions, tools, timer settings, menu customization, article reading mode settings, scheduled tasks, profiles, backup and restore, start-up with screen curtain, sound schemes, direct click, scenario-adaptive TTS configurations, custom symbol definition settings, lots of notification settings, etc., require their own in-depth articles and explanations – stuff beyond my ken. Jieshuo, in my opinion, is the true realization of Android and what it can bring to the table and to the screen reader scene. After all, Android is all about customization, and this one-man screen reader fully demonstrates this premise.
In retrospect, what started as an experiment has become my mainstay, transforming my Android experience with its AI descriptions, translation features, and finely customizable gestures. Though the quirks are real, and the learning curve steep, Jieshuo has opened up a new world of mobile accessibility. It may not be the conventional choice, but it’s one I’m glad I made. I still use TalkBack from time to time to check its new features or make feature comparisons, but TalkBack (or Google Accessibility Suite) is no longer my Android screen reader of choice.
In short, I’m here to stay, and I wouldn’t have it any other way.
Hello. Thank you for your excellent article. I have a question. Where can I find documentation for writing a plugin for this screen reader?
I mean internal commands
Does Jieshuo support actions in apps? are actions supported any better then in Talkback?
do they have any plans to support Braille devices?
An android device that I’m testing is running android 11. Every time I try and turn it on, and then turn talk back off, I don’t get any feedback at all. No speech Feedback, no sound Feedback, nothing. I’ve set all the permissions and everything. What on earth am I doing wrong
I would recommend getting a more up-to-date device if you have the chance.