CoolReader Accessibility Enhancement Project Home Page (Updated on August 18, 2011)

Thanks to the following organizations and individuals, we were able to develop a TTS-enabled version of CoolReader!

1. The Ohio Board of Regents;

2. The Ohio Rehabilitation Services Commission;

3. Vadim Lopatin, the developer of CoolReader; Thanks to Vadim’s dedication to making CoolReader the best eBook reader on Android market, we were able to build upon a dynamite applications.

4. GM Voices for creating our Video Intros and Outros

5. Harold Salters and Shellie Blakeney, T-Mobile USA’s Federal Regulatory Affairs;

6. Carolyn M. Sommerich, PhD, CPE, Associate Professor, Department of Integrated Systems Engineering; Ohio State University

7. Dr. Rajiv Ramnath, Director of Practice, Center for Enterprise Transformation and Innovation (CETI) in the Computer Science and Engineering Department, The Ohio State University; Associate Director, Institute for Sensing Systems (ISS) at The Ohio State University; and, Associate Professor of Practice, Department of Computer Science and Engineering, The Ohio State University.

8. SangHyun Park and Hyun Jeong Yoo, two incredibly talented Ohio State University graduate students.  Look out world!!

9. Apps4Android’s valued and talented development team. You know who you are!

I. Background Information:

The U.S. Departments of Education and Justice recently sent letters to college presidents that included a warning that “It is unacceptable for universities to use emerging technology without insisting that this technology be accessible to all students.” They were referring to students with print disabilities, which include students who cannot effectively read print because of a visual, physical, perceptual, developmental, cognitive, or learning disability.

II. Objective of this Development Project:

Develop and distribute an enhanced version of an existing open source (free) e-book reader that will be fully accessible to students with print disabilities.

The e-book reader will run on any Android smartphone, rather than on a special, specific e-book device (such as the Kindle or SonyReader). The Enhanced e-book reader will be released for free distribution through Android Market, providing significant leverage of the funds invested in this project, and thereby will benefit students throughout the University System of Ohio (USO), and beyond.

Documentation, using multiple modalities, will be created for all enhancements.

III. Rationale for switching to CoolReader from FBReader on February 7, 2011

IV. What is CoolReader?

Cool Reader is fast and small cross-platform XML/CSS based E-Book reader for desktops and handheld devices. Supported formats: FB2, TXT, RTF, TCR, HTML, EPUB, CHM. Platforms: Win32, Linux, Android. Has GUI implementation for eink base devices.

V. CoolReader Notes:

  1. and
  2. CoolReader is another GNU GPL open source book reader for Android. It provides us with a much more solid basis upon which to build our talking book reader. Simply stated, we found its source code is in much better shape.
  3. The steps for building the Android version do not seem to be documented, but they are fairly trivial for anyone with Android experience.
    • Set up the Android SDK and NDK. See:
    • Check out the source code here:
    • Modify /coolreader/crengine/android/jni/run_make so that the NDK path points to where you set up the NDK from step 1.
    • Run that run_make file and wait for it to finish. This may take several minutes.
    • Using Eclipse, create a new Android project using the libs, res, and src directories + the AndroidManifest.xml file located under /coolreader/crengine/android.
    • Work on this project and build it the same way as any standard Android project.
  4. We need to focus on the org.coolreader.crengine. ReaderView class. This is the class that displays the text on the screen. From what we have seen so far, it looks like all the text rendering happens in the native code and the native code will tell you what text the user has selected. We propose to use this selection abstraction as our reading cursor and have implemented a very rough proof of concept that shows it is doable by automatically selecting some text when the page changes and then speaking that selection.

VI. CoolReader Enhancement Rationale:

  1. Cool Reader is a very large project;
  2. Cool Reader has been updated with a new version ever 5.4 days since it’s release on December 10 (145 days/27 version updates.
  3. A large project such as Cool Reader is a non trivial thing to modify.
  4. Our goal is to sync our modifications back into Cool Reader.
  5. Our modifications to Cool Reader must be easy and reasonable to review by the original developer.  If not, we do not stand a chance in having our code integrated into the currently distributed application.
  6. Because of the way text-to-speech is done, you need to give it a Context object (aka the Activity of the app).
  7. The place where we added TTS was the most sensisble place to add it based upon our experience working with TTS;
  8. Parsing out TTS modifications would not improve anything and would definitely work against our success.

VII. Cool Reader Change Log as of June 20, 2011

  1. Updated: New version 3.0.46-10 released on June 17, 2011
  2. Updated: New version 3.0.46-7 released on June 14, 2011
  3. Updated: New version 3.0.46-5 released on June 4, 2011
  4. Updated: New version 3.0.45-17 released June 3, 2011
  5. Updated: New version 3.0.45-15 released on May 22, 2011
  6. Updated: New version 3.0.45-14 released on May 19, 2011
  7. Updated: New version 3.0.45-11 released on May 14, 2011
  8. Updated: New version 3.0.45-10 released on Apr 27, 2011.
  9. Updated: New version 3.0.45-08 released on Apr 23, 2011.
  10. Updated: New version 3.0.45-07 released on Apr 19, 2011.
  11. Downloads: Becomes more popular. >250,000 downloads level reached on Apr 19, 2011.
  12. Updated: New version 3.0.45-04 released on Apr 06, 2011.
  13. Updated: New version 3.0.44-09 released on Feb 22, 2011.
  14. Updated: New version 3.0.44-08 released on Feb 22, 2011.
  15. Updated: New version 3.0.44-03 released on Feb 12, 2011.
  16. Updated: New version 3.0.43-6 released on Feb 05, 2011.
  17. Updated: New version 3.0.43-4 released on Feb 01, 2011.
  18. Updated: New version 3.0.42-6 released on Jan 25, 2011.
  19. Updated: New version 3.0.42-5 released on Jan 24, 2011.
  20. Updated: New version 3.0.42-3 released on Jan 23, 2011.
  21. Updated: New version 3.0.42-2 released on Jan 20, 2011.
  22. Updated: New version 3.0.41-9 released on Jan 19, 2011.
  23. Downloads: Becomes more popular. 50,000-250,000 downloads level reached on Jan 19, 2011.
  24. Updated: New version 3.0.40-6 released on Jan 12, 2011.
  25. Updated: New version 3.0.40-1 released on Jan 08, 2011.
  26. Updated: New version 3.0.39-35 released on Jan 04, 2011.
  27. Updated: New version 3.0.39-27 released on Dec 28, 2010.
  28. Updated: New version 3.0.39-24 released on Dec 25, 2010.
  29. Updated: New version 3.0.39-11 released on Dec 25, 2010.
  30. Downloads: Becomes more popular. 10,000-50,000 downloads level reached on Dec 25, 2010.
  31. Updated: New version 3.0.39-5 released on Dec 17, 2010.
  32. Downloads: Becomes more popular. 5,000-10,000 downloads level reached on Dec 17, 2010.
  33. Updated: New version 3.0.38-6 released on Dec 10, 2010.
  34. Downloads: Becomes more popular. 1,000-5,000 downloads level reached on Dec 10, 2010.
  35. New rating: New star earned on Dec 10, 2010.
  36. New: First appearance on Dec 02, 2010.

VIII. General CoolReader Features Across all Platforms:

  • epub (non-DRM), fb2, txt, rtf, html, chm, tcr formats supported
  • Pages or scroll view
  • Table of contents
  • Bookmarks
  • Text search
  • Hyphenation dictionaries
  • Most complete FB2 format support: styles, tables, footnotes
  • Additional fonts support (.ttf)
  • Can read books from zip archives
  • Automatic reformatting of .txt files (autodetect headings etc.)
  • Styles can be customized in wide range using external CSS

IX. Android specific features:

  • Page flipping animation.
  • Built-in file browser, quick recent books access
  • Day and night profiles (two sets of colors, background, backlight levels)
  • Brightness adjustments by flick on left edge of screen
  • Background texture (stretched or tiled) or solid color
  • Paperback book-like page turning animation or “sliding page” animation
  • Dictionary support (ColorDict and Fora Dictionary)
  • Customizable tap zone and key actions
  • Place additional textures to /sdcard/.cr3/textures/ — to be used as tiled page backgrounds
  • Place additional textures to /sdcard/.cr3/backgrounds/ — to be used as stretched page backgrounds (/cr3/ directory can also be used instead of /.cr3/, and internal SD or internal storage instead of /sdcard/)
  • Select text using double tap (optional)

X. Features to be Added:

  • Add speech functionality
  • Provide access to external speech controls from within Cool Reader.
  • Ability to read text out loud using text-to-speech voices
  • Highlight text as it is being read
  • Navigation control: Read continuously, by paragraph, and by sentence. The native Cool Reader code needed to provide reading and highlighting by word has bugs in it.  We will make the developer aware of this problem.

XI. CoolReader Source Code Repository:

XII. CoolReader Enhancement Methodologies:

  • Develop speech enhancement code as “separately” as possible from the Cool Reader code base.  This will enable us to more easily integrate our speech enhancements into whatever version of Cool Reader is current at the time we complete this development project.

XIII. License:

  • GPL
  • No cost to users;

XIV. Distribution of Application:

  • Will provide our code enhancement to the original developer to integrate and release to the market. If not done quickly enough to suit out needs and time table, we will release our own version of the enhanced Cool Reader application with credit to original developer under the terms of our GPL Open Source license agreement.
  • Distribute through Android Market
  • Local: On OSU campuses
  • State: For use within University System of Ohio (USO)
  • National: United States
  • International: 48 countries

XV. Documentation:

  • While we are not going to develop/enhance documentation for existing versions of Cool Reader, we will use multiple modalities to document our enhancements.

XVI. Protected: Beta CoolReader Project Documents:
last updated on June 21, 2011

XVII. Hardware/Firmware:

  • Should run on any, Google certified, Android smartphone/tablet

XVIII. Recent Versions of Cool Reader Binaries and Source Code:

XVIX. APK Files:

XX. YouTube Video of Coo lReader Recorded on April 25, 2011:

XXI. Free ePub Resources:

XX. CoolReader Bug Tracking System