The primary objective of the Friends of GNOME Accessibility project is to improve document accessibility. As part of this effort, Igalia has been working in several areas related to PDF documents, focusing primarily on Evince and poppler .
Keyboard navigation in Evince
Caret navigation is more than just a enhancement for users who prefer it over the mouse; it is an essential need for users who are blind or visually impaired. Orca users, for instance, interact with software and information by moving to the thing they want to read. In the case of accessing document content, that requires the ability to move amongst the paragraphs, lines, words, and characters. As they do so, Orca presents the new location via synthesized speech and/or refreshable braille. Likewise, using a mouse to select regions of text is extremely difficult if you cannot see where you are on the screen.
For users with low vision, having to use the mouse frequently to move the content into the magnified view can be extremely tedious, especially at high degrees of magnification. These users will also benefit from the addition of caret navigation to Evince — as soon as the long-awaited caret and focus tracking support is added to GNOME Shell’s magnifier.
During the last few months, Carlos and I have been working on the implementation of caret navigation. I am happy to announce that it is available starting with Evince 3.9.5.
As with other applications, caret navigation can be activated by pressing F7.
Using the following keys you can navigate through the document:
- Left/right arrow keys: to move the cursor one character to the left/right from the previous cursor position.
- Up/down arrow keys: to move the cursor up/down one line.
- Ctrl + left/right arrow keys: to move the cursor to the beginning/end of the previous/next word.
- Home/End keys: to move the cursor to the beginning/end of the current line.
To select the text you can use the keys above + press the Shift key.
The implementation required some improvements in poppler, thanks Carlos, before the routines to navigate and select text in Evince could be developed. Some improvements are still in progress: poppler gets confused around tables and columns and users are not yet able to move the caret one page up/down using Page Up/Down keys. But we hope to have these issues fixed soon, along with finishing the implementation of Tab access to form fields and links so that all users can quickly and efficiently access these items.
Tagged PDFs
A “tagged” PDF document is one that includes structural and semantic information which, if exposed to assistive technologies, greatly improves the accessibility of the content. While tagged PDFs are not widespread, they are often found in documents which are required by law to be accessible.
For users who are blind, it is often desirable to be able to navigate amongst document elements such as headings, paragraphs, and tables, in much the same way that sighted users visually scan through headings to locate paragraphs about a desired topic. For these reasons, Orca and other screen readers typically include navigational commands to move more quickly amongst these objects than native caret navigation provides (e.g. jump to the next heading). Orca has these features in place, but because in Evince the entire document is exposed as a single accessible text object and lacks of the structural and semantical information provided by tagged PDFs, navigation amongst elements is not possible. Our plan is to fix that so that it becomes possible.
Having said that, the benefits of tagged PDF support extend far beyond Accessibility and include:
- Reflow functionality
- Export to other applications with format, layout, font data, etc.
- Copy and paste to other applications with some fundamental retention of content format.
As poppler lacks of support for tagged PDFs, and as first step, Adrián Pérez has provided the patches to implement it in poppler. His work is available in the tagged-pdf‘s branch waiting for review.
Continuing this path, during the next few months Igalia’s Accessibility team will focus on a major and needed rework of Evince’s accessibility. Upon completion of this work, Evince will be able to expose document content as discrete accessible objects with a significant amount of structural and semantic information, instead of having a single text object for the entire document. This, in turn, will make it possible for Orca and other assistive technologies to provide truly compelling access to PDF document content.
Finally, thanks to the GNOME Foundation and the Friends of GNOME supporters for their contributions towards making a more accessible GNOME.