This report was written with support from the Government of Canada’s Social Development Partnerships Program – Disability Component.
The opinions and interpretations in this publication are those of the author and do not necessarily reflect those of the Government of Canada.
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
The National Network for Equitable Library Service (NNELS) is a digital public library of ebooks for Canadians with print disabilities, and an advocate for an accessible and equitable reading ecosystem for Canadians with print disabilities. NNELS supports principles of openness, inclusion, and choice. NNELS is hosted by the BC Libraries Cooperative, a community service not-for-profit cooperative and a national leader in information and technology services.
Our team of Accessibility Testers has expert knowledge in the areas of accessibility testing, analysis, software development, and leadership. The team works to educate and advise publishers, technology vendors, and public libraries on best practices for accessibility. Our testers have lived experience with a range of print disabilities, including blindness, low vision, and learning disabilities.
Rakuten Kobo is a reading platform which provides a large selection of audiobooks and ebooks. Users can browse, search for, and read books through the web, mobile applications, or dedicated e-readers. Books can be purchased directly through Kobo or read using a Kobo Plus subscription, which provides access to a selection of titles at no additional cost.
Our testers used a range of assistive technology and devices to assess the usability of the Kobo website and mobile applications on supported platforms. Test accounts with an active Kobo Plus subscription were provided for the duration of testing. Readers can find a complete list of all the software and operating systems used in this assessment in this report’s Systems and Assistive Technology section.
This assessment aims to determine the usability experience of readers with print disabilities and to what extent they can access digital content effectively and efficiently. While this report aims to provide an overview of the accessibility performance across supported platforms, this is not an in-depth review of Kobo itself. As a result, some functionality may not be discussed at all or in-depth.
Introduction to Assistive Technology
All mainstream operating systems include built-in screen readers (Narrator on Windows, VoiceOver on Apple devices, and TalkBack on Android) that read the contents of the screen out loud, allowing users with visual disabilities to browse apps and websites, send and receive texts and emails, and accomplish many other tasks with ease. Keyboard commands and custom touch gestures provide a flexible way for a user to find and interact with the controls on-screen. Windows also has alternative screen-reading software available, most notably a commercial option called Job Access with Speech (JAWS) and a free and open-source option called Non-Visual Desktop Access (NVDA). The text spoken by a screen-reader can be sent to a refreshable Braille device. Mainstream operating systems are also equipped with user interface magnification, large text options, and high-contrast viewing mode to assist people with low vision.
To ensure usability and accessibility of an application by people with print disabilities, all functions and controls must be accessible using assistive technologies. The DAISY Consortium explains that the basic assumption of accessibility evaluations is that reading systems “should support reading with eyes, ears, and fingers.” (DAISY Consortium, 2017). It should be possible for users to read the content of the document by:
- Reading the text with screen readers or self-voicing text to speech (TTS) applications
- Adjusting the display, including font size, alignment, and colour contrast, or a combination of some or all these options
- Reading the text with a refreshable braille display
- Reading with assistive technologies designed for persons with dyslexia or other disabilities
- Reading with the app’s built-in read-aloud functions
Accessibility Performance and Recommendations
This section will investigate specific accessibility issues encountered while testing the Kobo apps and website. Below you will find the testing results and their related recommendations as they pertain to:
- Signing In and Registering
- Reading and Navigating Content
- Visual Adjustments
Finally, the Development Recommendations sections contain suggestions for improving the interface on each platform. These suggestions will be relevant to any issues or observations noted above.
Kobo Website and Kobo Desktop
Kobo’s website provides searching and browsing functionality as well as an ebook reader. Notably, it does not provide a way to read audiobooks; this can only be done in mobile applications.
A Note about Kobo Desktop
The Kobo desktop application appears to be a wrapper around the Kobo website. As such, visual feedback applies to both equally unless otherwise specified.
The desktop application is completely inaccessible on all platforms for screen reader users. Navigating the interface with a keyboard is possible, but no screen reader feedback is given, regardless of the screen reader and operating system used.
Signing In and Registering
The links to “Login” and “Register” are located close to the end of the site header. This means keyboard or screen reader users must move through several other links to reach them. Moving these controls closer to the beginning of the header would be ideal, particularly as it is doubtful that people will want to access their wishlist, gift cards, or rewards before logging in.
On the “Login” and “Registration” pages, some screen readers do not read the names of text fields after a value has been entered. This is not reproducible on all software combinations but was reported by a VoiceOver user.
All visual testers reported that the login text was small and difficult to read, with no way to zoom in using the desktop app.
Registration has the potential to be very problematic due to poorly-communicated password requirements. Passwords must have at least one symbol, but the website limits which symbols can be used without specifying which ones are disallowed. The user is only told about one invalid symbol at a time and only after submitting the registration form, which clears the password. This means the user will have to re-enter the password without the disallowed symbol, only to be told that a different symbol in the same password is also disallowed. Finally, not all symbols have a proper error message associated with them, so if you use one that is not on the list, you get the following unhelpful error:
“Your password contains a special character we do not allow. Please enter a different password using only letters, numbers, and common punctuation marks.”
While this is not specifically an accessibility issue, it does create a terrible user experience for anyone who uses complex passwords (which can now be generated automatically by Apple devices and browser extensions). Certain assistive technology combinations can make the registration process much more difficult. These password requirements should be clearly specified in the password rules, and typable characters should never be disallowed—but if they are, the user should be told about all invalid characters simultaneously. There should certainly be no mystery about which of them is invalid.
The expandable navigation menus at the top of every page are problematic for keyboard and screen reader users. They expand automatically after gaining keyboard focus, which is not as useful as it sounds: Many screen readers will automatically move keyboard focus as the user browses the page, causing these menus to open without any additional action on the user’s part. The user will then need to close the menu to easily continue past it. It’s possible to turn off keyboard focus tracking (which is off by default in some screen readers), but the menu buttons can’t be activated by a screen reader; keyboard focus needs to land on them to open. This causes the opposite problem—users can’t open the menu unless they route keyboard focus to the button, and many users may not know how to do this.
Additionally, there is some inconsistency in how these menu buttons respond to keyboard input: Pressing enter on the “eBooks,” “Audiobooks,” and “Apps & eReaders” buttons will expand them if they are collapsed, but pressing enter once again will load the respective page rather than collapsing the menu. The “Super Point” and “My Account” buttons do not exhibit this behaviour. Most of these menus respond to the escape key, but the My Account menu does not, so a keyboard user needs to memorize which menus respond to which key presses to efficiently use the site navigation.
The link to change region is an image with the alt text of “Canada Kobo store.” This is intuitive when looking for the link to change regions, but as a graphic in the top navigation menu with a fairly generic label, it is easy to assume this link goes to the homepage.
The “My Books” section has no heading before the start of the main content, which could lead to screen reader users missing the filter options before the list of books. The bookshelf is available in a grid or a list view.
The list view displays books in a simple format with text and links. Each book’s title is a heading, making navigating through and locating a specific book easy. The “Author,” “Narrator” (if applicable), and “Series” (if applicable) are links which can be activated to perform searches. The user’s current progress through the book is shown, and there are labelled buttons to read the book or expand a menu with more actions, such as “Mark as Finished” and “Delete,” the latter of which will remove the book from the shelf. The “More Actions” button properly reports its state and can be expanded or collapsed using a screen reader.
In grid view, books are listed in a table. The top row correctly uses table headers, but they have not been applied to book titles in the leftmost column, which would also be useful. Some table headers are links that will sort the table according to that column when activated. For example, clicking “Author” will sort alphabetically by author. Headers of columns which cannot be sorted are not read as links. They are separately identified as clickable, even though attempting to activate them does nothing.
Unfortunately, screen readers cannot properly access the “Status,” “Date Added,” or “Actions” columns other than to read their headers. VoiceOver cannot access these columns at all, requiring users to switch back to list view to perform actions, while other screen readers skip over the cells when using table navigation commands. This view would be fully accessible with a correctly-formatted table.
The homepage contains level-2 headings for various browse categories, including recommended books, top releases, trending, and recently viewed. These sections all contain a “View All” link and a “Skip this list” link which moves the focus to the next section. The layout for each section on the homepage is quite different from the layout that appears when activating the section’s “View All” link. Each has different accessibility concerns.
Books are not separated by headings on the homepage, so it might be difficult to navigate between titles quickly. A workaround is to move to the next or previous image, which will navigate between book covers. On this page, author names are not accessible to screen readers because the alt text for book covers does not include them. The word “by” is at the end of each title, suggesting that the author names were intended to proceed them, but the interface wasn’t coded correctly, and the names are simply not there. The buttons to “Add to cart,” “Preorder,” or “Read with Kobo Plus” have overly verbose labels which include the full book title, requiring a screen reader user to listen through the entire title before finding out which of these actions the button will perform. While it is important for the title to be associated with the function of the button, users should always hear the action before the associated title.
- Current example: Where the Truth Lies – A completely gripping crime thriller eBook by – Read with Kobo Plus
- Better example: Read with Kobo Plus: Where the Truth Lies – A completely gripping crime thriller eBook by M J Lee
After activating a “View All” link from the homepage, a different layout is loaded. Each book has a heading associated with its title, making screen reader navigation much easier. Each book has multiple links to the series, author, and narrator (if applicable). All information is readable, and actions like “Read with Kobo Plus” do not include the book title. Unfortunately, these action controls are not accessible to most screen readers because they are custom controls with no accessibility markup, and screen readers cannot activate them. Testers often found that it was necessary to open the book’s details page, which presents an accessible “Add” button.
The menu button which brings up the “Already Read” and “Not Interested” options is labelled “Close,” whether it is expanded or collapsed. This label is incorrect 50% of the time and does not describe the button’s purpose. Unlike the top navigation menus, this button responds well to screen reader activation, though the escape key does not collapse the options. This label also gives no indication of which book is associated with the button, which could cause user confusion as screen readers will navigate to this “Close” button before reading the title of the corresponding book.
Categories can be browsed through the “eBooks” and “Audiobooks” top navigation items. Each button expands to reveal a list of genre links that will lead to their respective browse pages when activated. Alternatively, the navigation item can be clicked or activated to reveal the main landing page for all audiobooks or ebooks. These pages share characteristics of the book lists found on the homepage, but there are some differences.
Before any of the subcategories, a featured list is presented for the genre in question—for example, “Best in Fiction.” These books are presented in the cover view. The alt text of each cover contains the title and the author of the book, as well as the media type (“eBook” or “Audiobook”). This list is relatively simple and presents no accessibility challenges to screen reader users.
Below this list, several collections are shown. These use the same layout as the collections found on the homepage, with the addition of author names where they were missing on the homepage. The only remaining accessibility barrier in these sections is the verbose screen reader labels on action buttons, such as “The Lonely Hearts Book Club ebook by Lucy Gilmore – Add to cart.” These button labels are technically correct, but the user must listen to the book title and author (which they may have read already) to determine whether they are reading the book with Kobo Plus, adding it to a cart, or preordering it.
Pressing the “View All” link on a collection will open a page which is once again similar to the corresponding view on homepage collections. The books are all under level-2 headings, and the control for buying, preordering, or reading a book cannot be activated reliably by a screen reader because they lack the proper markup.
While the search field is not part of a search landmark, it is always the first text field on every page and is, therefore, quite easy to find with a screen reader. Where possible, the search function appears to operate within the current view—something not indicated by the label. This is helpful but could cause confusion when a user tries to perform a search in a section such as “My Books” and is only told of the search restriction after the results have loaded. Ideally, the label of the search field should specify which section of the site is being searched.
The search field has a low error tolerance, requiring exact search terms to produce accurate results. Searching for “Hary Potter” does not return any books. While this would require a backend fix, it would benefit people with dyslexia, who may be more inclined to make spelling mistakes.
The results page operates similarly to the “View All” page. All titles are under a heading, and the button associated with obtaining each title is not marked up correctly, and screen readers cannot reliably activate it.
Search filters are usable with screen readers, but the markup could be better. The selectable options under each filter are links, and it is not possible to tell which of them is selected or whether it is possible to select more than one at a time. These would be more appropriate as checkboxes or radio buttons.
Search results are shown 12 at a time, with pagination links at the end of the main content. There is no heading or label identifying the start of the pagination controls, and the links to each page are only labelled with the page number. It would be helpful to better define the section or to add to the links’ text so they better describe their purpose, for example, “Page 3” or “Next page.”
Search results can be sorted using the “Sort by” pop-up button. Activating this opens a menu of options, which can be navigated through and selected using standard keyboard commands. Screen readers do not identify which option is currently selected while in the menu, but the pop-up button’s label specifies how results are currently being sorted.
Activating a link to a book will open its details page. This page is accessible and well laid out, with headings marking the start of important pieces of information. It includes a button to add the book to the cart or add it for free via Kobo Plus (depending on whether the user is subscribed to Kobo plus and if that book is included). When a book is added to the user’s shelf, screen reader users will hear a message to confirm that the book was added.
Books can be opened in the web reader using the “Read” button in the “My Books” section. As previously discussed, this section has some accessibility challenges, particularly in the grid view. It may be necessary to switch to list view before opening a book.
When the web reader is first opened, a short tutorial explains how to interact with the reader and turn pages. In addition to some mouse usage instructions, the tutorial helpfully invites users to press the left and right arrow keys to turn pages.
The book text is displayed in a single or dual-page view, depending on settings and book layout. In dual page view, each page is contained in a separate frame. Combined with the somewhat nonsensical frame labels, this causes screen readers to announce extra verbiage when moving from the first visible page to the second. The following is a real example of NVDA’s speech output when moving between these frames:
“out of frame ch021_xhtml frame heading level 1 Chapter Nineteen”
After pressing an arrow key to turn the page, the screen reader focus usually jumps to a random location in the reader interface, so it is necessary to find the beginning of the frame each time. Since the size of pages scales depending on settings, the most effective way to read with a screen reader involves fitting as much text as possible onto a single page. This can be accomplished by decreasing the font size to the minimum, zooming the page out, and maximizing the window if necessary. A scrolling view showing an entire chapter at once would be a great quality-of-life improvement and offer more flexibility for visual readers.
When the “Reading Settings,” “More Options,” and “Table of Contents” buttons are pressed, a dialogue opens with the associated controls or links. This dialogue often does not gain keyboard focus, so it is necessary to navigate to it manually and interact with it. If the user tries to change a setting which opens a second popup, the sub-dialogue nearly always fails to get keyboard focus. Pressing the “Close” button on a sub-dialogue will sometimes move the keyboard focus outside the containing dialogue, so the user needs to re-interact with that dialogue to select another option or close the settings completely. The escape key will close an open dialogue only if the keyboard focus is within that dialogue.
The “Table of Contents” is displayed as a list of links to each chapter or section. Activating a link will move the ebook reader’s position to the start of that section. Keyboard focus is not moved to the content, so the user must dismiss the “Table of Contents” and navigate to the frame containing the contents to start reading. Screen readers will identify the link to the chapter the user is on as the current (or selected) item, which is helpful.
The web reader doesn’t contain a text search function, bookmarks, or notes. It also doesn’t appear to synchronize reading progress with the mobile apps.
Apart from the “Publisher Default,” the web reader offers serif, sans serif, and Open Dyslexic. Light, sepia, and dark themes are available, and margins can be adjusted to be narrow or wide. The previously-mentioned “Auto” layout is available, which normally defaults to dual-page, but if the interface is magnified or zoomed to a point where two pages will no longer fit, this will fall back to single-page.
While the available fonts are a good start, testers found that the low contrast and lack of additional adjustments in Kobo—particularly the lack of colour flexibility, line spacing adjustments, and bold fonts—made it difficult to create a good reading experience without balancing browser, system, and Kobo customizations. One tester found the dark theme—which uses grey text on a black background—difficult to read when magnified. It passes WCAG AA at a ratio of 5.76:1, but a lighter grey would make this theme more usable.
Other parts of the reader interface—such as the page numbers and the close buttons in settings popups—were difficult for low-vision testers to see and would benefit from increased contrast and increased or adjustable size.
Outside the reader, the rest of the website offers no customizations. Users need options to adjust the visual appearance of the content. This could include choosing different fonts, colours, and background options. For example, people with dyslexia often struggle to read fonts with serifs. The small lines or strokes at the end of letters can blur together, making it difficult to distinguish between letters. On the other hand, sans serif fonts have simple, clean lines that make them easier to read.
- Prevent the navigation menu from opening when it gains keyboard focus; instead, allow the user to expand or collapse the navigation items.
- In the “My Books” grid view, ensure all columns are reachable with VoiceOver for MacOS and standard screen reader table navigation commands.
- In collections views such as this one, add markup to the action buttons so screen reader and keyboard users can interact with them.
- In the web reader, add a scrolling view that renders an entire chapter or section at once.
- In the web reader, make sure new dialogues gain focus as soon as they’re opened and that pressing the close button on a sub-dialogue (such as the layout adjustment in reading settings) brings the focus back to the dialogue that spawned it (in this case, “Reading” settings).
- Add as much visual customization as possible, including bold font, line spacing, and granular colour adjustment.
- Ensure the escape key always closes the currently-focused navigation menu or dialogue.
- Improve clarity surrounding password requirements as discussed in the “Signing In and Registering” section.
- On search results pages, change filtering options to checkboxes or radio buttons where appropriate.
- Ensure the desktop app works with assistive technologies.
- Allow for spelling errors in the search function.
- When a link is pressed in the “Table of Contents,” move the keyboard focus to the content.
- Ensure that headings are applied across the website, such as separating books by heading on the home page and adding a heading to the search results.
Kobo App for iOS
Low-vision testers found the text on the login screen small and difficult to read, particularly text field entries. While system-wide settings are available to adjust the appearance, users would benefit from increased readability of this text.
For a VoiceOver user, it is sometimes not possible to use swipe gestures or a keyboard to reach the login controls from the main screen. They are placed at the bottom of the screen and need to be located by touch. The login form is labelled well, although Voiceover does not read the name of the text fields once the text is typed into them.
At the top of many screens is a toolbar of buttons. Accessibility labels for these buttons are verbose at best and inadequate at worst, with some having somewhat helpful but redundant labels like “Toolbar Search,” while others have labels which don’t adequately describe their purpose, such as “Toolbar Overflow.”
The home screen has an “Edit” button for adding or removing sections. VoiceOver users could not successfully use this feature; pressing the “Add” button on a section seemed to have no effect.
The search button is located in the toolbar at the top of the “Home,” “Ebooks,” and “Audiobooks” tabs. As mentioned above, it is labelled poorly for VoiceOver users, but it is identifiable and can be easily activated. Search results automatically populate as text is typed into the search field. There is no announcement from VoiceOver when this happens, although hearing an announcement after typing every letter would be more disruptive than helpful. If announcements are implemented, they should happen after a delay so the user hears them if they pause or finish typing. The keyboard will disappear if the user starts exploring search results, which can be inconvenient if one is touched by mistake. Because results populate automatically, the user doesn’t need to submit their search manually. However, the “Search” option on the keyboard can be double-tapped to hide the keyboard and prevent further accidental typing. The search field remains at the top of the screen and can be double-tapped at any time to bring the keyboard back.
Search results are listed with their title and author for ebooks or with their title and narrator for audiobooks. This means the author of an audiobook is not shown, which is an odd decision and could complicate locating the correct one if more than one audiobook has the same title. The format is not explicitly stated but must be inferred based on whether an author or narrator is listed. Other than the above caveats, search results are efficient to browse with VoiceOver. Each result’s information is contained within one element, meaning the user doesn’t need excessive swipes to navigate from one result to the next. If a book is available with Kobo Plus, a button is placed after the relevant search result. No search filters were found on the results page, including filters for ebooks or audiobooks.
When exploring books from the “Home,” “eBooks,” and “Audiobooks” tabs, the experience for VoiceOver users is quite poor. Each book is presented as separate controls with no headings or other markup, so VoiceOver users must swipe several times to move from one book to the next. On the “Home” tab, the number of swipes required to pass each book is also inconsistent, so reading each control is necessary, slowing down the user even more. There are also no options for sorting or filtering these lists on the “Home” tab, arguably even more important than filtering books already in a user’s library.
The “Kobo Plus” tab provides a hub exclusively for books available for free with Kobo Plus. This layout is much different, and in many ways, it is more accessible and user-friendly, but only after opening subcategories. When the tab is first opened, an unlabeled search button is at the top-left, with categories below that.
Below the genre options are various lists, such as “New and Hot in Kobo Plus.” The books in this section are presented as images with no alt text, causing VoiceOver to remain silent when focusing on them. Image recognition will attempt to read the text in them if enabled, but the result ranges from inaccurate to completely unusable.
When choosing a genre on the “Kobo Plus” tab or activating the “All” button next to a collection, the results are much more navigable: Each book is a single, well-labelled control. After the book information, VoiceOver will read a number in parentheses which does not correspond to any known information about the book. The purpose of this number needs to be communicated more clearly.
Filtering is possible on the Kobo Plus tab, but the “Sort By” And “Filter” buttons are not labelled. VoiceOver detects a piece of text that says “Filters” between these two buttons, and it is possible to double-tap this control to open the list of filters. Additionally, it is necessary to press the “Apply Filters” button to filter the books, which may be unclear to users who don’t read through the entire list of filters.
Choosing a book will bring up its details screen, which is largely accessible to VoiceOver except for more verbose toolbar buttons across the top. The synopsis is located further down, initially showing part of it with a link to load the entire description. This link’s label, “Select this to read full description of this book,” is a little too verbose, but it does describe its purpose. “Read Full Description” would be much more concise and just as effective.
Books can be added to the library with a button usually called “Add to my Books,” though In some cases, the button is simply labelled “Free,” which is less descriptive. Pressing this button immediately starts the book download, changing the label to “Read Now” upon completion.
Downloaded books can also be accessed through the “eBooks” and “Audiobooks” tabs. These share a common layout with several accessibility concerns. The text “Sort by: Recent Activity” can be accessed with VoiceOver, but the sort button is an unlabeled control that occurs before this text in swipe order. Activating the “Toolbar Overflow” button causes menu items to appear, but they are mixed with the library controls, and VoiceOver can navigate outside the popup. Finding the menu items among the many additional controls can be challenging, and the library controls outside the menu do not function until the menu is closed.
In the list view, the “Title,” “Author,” “Series,” “Narrator,” “Length,” “Progress,” and “Kobo Plus status” are all separate labels, along with the menu button next to each book, which is labelled “Library Cell More.” This creates inefficient navigation, requiring VoiceOver users to swipe many times or explore by touch to move from one book to the next. Each book (including its menu button) could be consolidated into a single accessible control, using VoiceOver actions to invoke the menu.
In the cover view, the only controls visible to VoiceOver are the progress statuses for each book. The covers lack alt text, so VoiceOver is unable to read them. This view is completely unusable with VoiceOver.
Added and purchased books can also be browsed by the author or series via the “More” tab. On these screens, choosing an author or series opens a list of associated books. Books are displayed using the same format as on the “eBooks” and “Audiobooks” tabs. These lists can be sorted, although the label for the “Sort by” button is not associated with the button, causing VoiceOver to read “button” and requiring a swipe to hear the label. On the plus side, this label also includes the currently selected sorting option.
The ebook viewer can be invoked by pressing the “Read Now” button on an ebook. Landscape and portrait orientation are both supported. It is more fully featured than the web reader, with support for bookmarks, annotations, and text search.
For VoiceOver users, using the reader is quite cumbersome. The “Previous Page” and “Next Page” buttons cannot be located by swiping, so a user who is continuously reading the chapter will have to stop and manually find the “Next Page” button. Aside from these controls, several other reader functions are available, but their associated buttons cannot be reached by touching the screen. Instead, the user must swipe to them manually.
When pressing one of the page-turning buttons with VoiceOver, the app rapidly flips two pages ahead or behind. The only fix seems to be turning the phone to landscape mode, wherein the “Previous Page” button will still flip back two pages, but the “Next Page” button will only move forward once. This effectively makes reading books with VoiceOver impossible in portrait orientation.
A scrollbar at the bottom of the screen shows the current position in the book and appears to allow quick book navigation; however, if this is possible, adjusting it with VoiceOver causes the book text to abruptly and irreversibly disappear until the book is closed and reopened.
The “Open Table of Contents” button does just that, displaying a list of chapters or sections that VoiceOver can correctly read and double-tap to jump to the start of the chapter or section. An “Annotations” tab on this screen will switch to a list of bookmarks and notes the reader has placed. The tab controls are identified properly, VoiceOver announces which is selected, and double tapping a “Bookmark” or “Note” works as expected and jumps to where the “Bookmark” or “Note” was placed.
“Table of Contents,” “Reading Settings,” “Search,” and “More Options” all function as expected with VoiceOver, except for the unlabeled “Close” button on all of these screens. The “Lock Orientation” feature is a switch, but VoiceOver does not read its enabled or disabled state, so the user would have to experiment by rotating their phone.
Highlighting passages and adding notes is accomplished by long-pressing a piece of text within the ebook. For a VoiceOver user, this is accomplished with either a triple-tap or a double-tap and hold. Neither gesture reliably invokes the menu, making the process cumbersome and unreliable.
As is the case on all platforms, the ebook reader has no read-aloud (text-to-speech) feature. Read-aloud functionality benefits users with a visual impairment or dyslexia, language learners, and many others who want or need eyes-free listening. All modern operating systems ship with high-quality voices, and it should be much easier to use them without loading a screen reader.
With VoiceOver, the audiobook player is very accessible and intuitive. Users may have trouble finding the table of contents; it’s located under the “Overflow Menu” button, which would benefit from a clearer label. It is also possible to tap the name of the current heading to bring up the list of tracks, but since VoiceOver does not identify this control as a button, this is easy to miss. The rest of the controls in the interface are labelled well.
While changing the sleep timer and playback speed is accessible, the current playback speed is not properly indicated in the list of options. VoiceOver reads the words “Playback Speed” as part of the label for the currently active speed option, but this wording is unclear; using “Current Playback Speed” or the more traditional “Selected” would add some clarity. Changing the playback speed also does not recalculate the remaining time in the audiobook, so a ten-hour book will still appear ten hours long even though listening to it at 2X speed would reduce the length to five hours.
Testers reported small, difficult-to-read font on some interface elements throughout the app. Some parts of the interface did not honour system text size adjustments, so magnification was necessary to make basic functions more readable.
The ebook reader has a zoom feature and support for system accessibility settings. When adjusting reading settings, the labels for the controls are also affected by the system text size; however, the window itself does not resize. It is, therefore, possible to enlarge the text so far that the controls become unusable.
The app has independent adjustments for brightness, font size, line spacing, margins, and justification. Ten fonts are available, including Open Dyslexic. With the addition of system settings, the reader is far more customizable than its web counterpart. Kobo’s dark mode is grey text on a black background; making the text lighter in this mode (or offering granular colour adjustments) would improve text readability. One tester noted that adding a bold option for the selected font would likewise be a nice improvement.
- Add accessibility labels to book covers in the “Cover” view.
- Prevent VoiceOver from turning multiple pages when the page controls are pressed a single time. Better, allow VoiceOver to turn pages automatically and continuously read, as it does in Kindle and iBooks.
- Add clear labels to filtering and sorting buttons throughout the app, menu/overflow buttons, close buttons in the ebook viewer, and any other actionable control that lacks a clear label.
- Change labels on top toolbar buttons so they are more concise and do not include the word “toolbar.”
- Combine the multiple controls in book lists into a single list item for each book, as seen in search results and the Kobo Plus tab.
- Ensure the reading controls in the ebook viewer can be located by touch with VoiceOver enabled.
- Allow VoiceOver’s triple-tap gesture (a long press) to select the current text block in an ebook and bring up the associated menu.
- Add as much visual customization as possible, including bold font and granular colour adjustment.
- In the audiobook player, recalculate the remaining time after changing the speed.
- Fix the eBook scroll bar, so VoiceOver can adjust it without making the text disappear.
- Provide an ebook read-aloud feature.
Kobo App for Android
When first opening the app, the three sign-in options (Google, Facebook, and Kobo) are all identified by TalkBack as “Sign In.” It is, therefore, necessary to activate each one in turn and back out of the login screen if the wrong option is chosen. TalkBack also does not identify these controls as buttons.
Once the Kobo option is located, the login screen is well-labelled, and signing in is straightforward.
The app is not as feature complete as its iOS counterpart. Some functionality related to book discovery is outsourced to the Kobo website, which appears in an embedded browser in the app. Some information from the web section of this report will be repeated in brief here. Unfortunately, the embedded browser view allows the user to escape the current section and browse other sections of the website, which might duplicate functionality found inside the app. For instance, the Wishlist tab automatically opens the wishlist section of the website, but it is also possible to perform a search or go to the Kobo homepage from this tab.
Many button-like controls throughout the app lack a control type. TalkBack will announce their name and make a sound to indicate that they can be activated but will not identify them as buttons. Thanks to TalkBack, this is less problematic than the equivalent problem on other operating systems, but it is still best practice to add a control type to any actionable controls.
A screen with several options appears when activating the “Profile” button from the home tab. These options are contained under headers such as “Colour Mode,” “Get Help,” “Permissions,” and “About.” These headers should ideally be reported as headings, but instead, TalkBack only reads the name and then says “Disabled,” implying that the control is dimmed and cannot be activated. The menu items that can be activated are also not reported as buttons. Since some of the header controls (such as “About”) could easily be confused for buttons, more markup would add clarity and help users realize why their “About” control is disabled.
Without exception, any menu buttons in the native app which invoke a pop-up list of options are accessible to TalkBack. Screen reader focus will not leave the list of menu items, and the system back button can escape the menu without choosing anything.
The “My Books” tab contains any books added to the user’s library—downloaded or not. The view can be changed to show ebooks, audiobooks, series, or authors. An option to view all books regardless of format is notably absent, but these views are accessible with TalkBack.
It is also possible to create collections, essentially book folders. The process of adding a new collection involves selecting books from the library. Unfortunately, TalkBack does not report whether each book in the list is selected or unselected, making it difficult to determine which books are being added. The total number of selected books is shown, so it is possible to double-tap a book and check whether the number has gone up or down, but this is far from ideal. Most buttons on this screen are also unlabelled.
Books can be presented in a list view or a cover view. The list view is fully accessible to TalkBack, with menu buttons clearly labelled with the name of the corresponding book. The cover view is entirely unusable because book cover images have no alt text, so TalkBack reads nothing except the reading progress.
Initially, the “Search” tab only searches through books added to the library. The app must launch the Kobo website to perform a full catalogue search. This interface is largely accessible, but users may find it unnecessarily cluttered because the webpage has navigation links and other controls. The search results are each under a heading, and TalkBack’s heading navigation works well here. Like the desktop website, action buttons for adding or buying books are not marked up properly on the results page, and TalkBack cannot activate them. To add a book, users will need to open its details page. The filters and search results are broken up into many controls, making page navigation and exploration quite inefficient. Some controls, like the “Sort” button, are duplicated with TalkBack.
The app’s home screen is minimal, showing a “Recently Opened” section and buttons to browse for “eBooks,” “Audiobooks,” and “Kobo Plus” content. These buttons immediately launch the Kobo website in the embedded browser. Regardless of the category chosen, the initial layout consists of several carousels showing collections of books. Even though this is presented in a cover view on mobile, the covers have informative alt text that identifies all the standard book information, the price, and whether it is available on Kobo Plus.
Tapping the “View All” link for a collection will bring up a page very similar to search results. The same filtering is available, and each book is under a heading. Unfortunately, these also use poorly-coded action buttons, meaning adding a book with TalkBack is not possible from this view. Instead, the user needs to open the book’s details page, which contains a proper button.
Unfortunately, TalkBack users will find that reading text is nearly impossible. Testers found that tapping parts of the screen would inconsistently cause TalkBack to read parts of the current page, but it was not read in order and could not be reliably reproduced. Additionally, all buttons in the reading interface are unlabeled. This includes the “Close” button, the “Page Navigation,” the “Reading Settings,” the button to open the table of contents, and every other control. These buttons sometimes do nothing when pressed, so even discovering their function by trial and error is a frustrating experience. This interface is completely unusable with a screen reader in its current form.
As is the case on all platforms, the ebook reader has no read-aloud (text-to-speech) feature. Read-aloud functionality benefits users with a visual impairment or dyslexia, language learners, and many other people who want or need eyes-free listening. All modern operating systems ship with high-quality voices, and it should be much easier to use them without loading a screen reader.
The audiobook player has small accessibility concerns but is almost entirely usable with TalkBack. The “Seek,” “Play/Pause,” “Sleep Timer,” and “More Options” buttons are labelled well. A large section of the screen located above the “Play” button is seen as an unlabeled button by TalkBack.
In the table of contents, the accessibility labels for each chapter are verbose, appearing as though they came from an elapsed/total time template. For example, “Chapter 8, of total time 11 minutes and 34 seconds”.
The average TalkBack user should have no trouble reading audiobooks with this interface.
Low-vision testers found that buttons in the reading interface were faint and difficult to see without significant magnification. Though the text appearance can be adjusted, these settings do not seem to affect the reading controls—only the book text.
Font selection is limited, with only four available, including the “Publisher Default” option. There are no additional settings for character, word or line spacing and no way to adjust margins or page alignment.
- Add control types such as “button” or “heading” where appropriate.
- Add clear labels to the items in the cover view of “My Books.”
- Add clearer labels to the login options to correctly indicate which service the user will be logging into.
- Improve the readability of the login screen.
- When creating a collection, indicate whether a book is selected or not. Label all buttons on this screen.
- Add more visual adjustments to the ebook reader to bring it to the level of Kobo for iOS.
- Use an accessible text view so TalkBack can read and interact with the book content.
- Label all buttons in the ebook viewer so TalkBack can identify them.
- Add a read-aloud mode with voice and speed customizations.
- Improve labels in the audiobook player, including the button in the middle of the screen and the timestamps on the table of contents items.
The accessibility and flexibility of Kobo vary between operating systems. Low-vision testers on all platforms found parts of the interface difficult to read, screen reader users found missing labels, unresponsive controls, and ebook reading functionality ranging from inefficient to unusable. On all desktop operating systems, screen readers are unable to read any controls in the Kobo desktop app. Some parts of the Kobo interface—such as the audiobook player—demonstrate awareness of good accessibility practices, but a fragmented and inconsistent development strategy has led to a suboptimal experience on all tested platforms. Fixing the accessibility barriers identified in this report will help to provide an accessible platform for all.
Systems and Assistive Technology
- Operating Systems
- Windows 10
- macOS 10.15 and 13.2.1
- iOS 16.3 and 16.4
- Android 11-13
- Desktop Applications
- Kobo for Windows 4.35.18074
- Kobo for MacOS 4.35.16116
- Mobile Applications
- Kobo for iOS 10.4.1
- Kobo for Android 9.4.39670 and 9.5.39680
- Chrome 110
- Firefox 110
- Safari 16.3
- NVDA 2022.4 (Windows)
- JAWS 2022 (Windows)
- VoiceOver (macOS)
- VoiceOver Touch (iOS)
- TalkBack (Android)
- Orca 3.38.2 (Linux)
- Magnifier (Windows)
- ZoomText 2020 (Windows)
- Zoom (iOS)
The following testers and editors contributed to this report:
- Patrick Bouchard
- Mélissa Castilloux
- Tobe Duggan
- Maryse Glaude-Beaulieu
- Simon Jaeger
- David Kopman
- Riane LaPaire
- Ka Li
- Laetitia Mfamobani
- Deanna Ng
- Megan Sellmer
- Melody Shih
Published by the National Network for Equitable Library Service (NNELS), Vancouver BC, 2023
 Print disabilities are defined by Canada’s Copyright Act and include visual, mobility, or comprehension impairments such as dyslexia.