This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Accessibility in Evince

Dependencies

Evince uses Poppler to read PDF files, and to implement a11y some changes was made to Poppler Glib interface, so evince Accessibility (a11y) doesn't work with old Poppler.

How to use

To use evince Accessibility you need accessibility tools like Orca. Once you have Orca running in your desktop you can open a PDF file.

You can navigate through widgets pressing Tab key. When view widget has focus, Orca will start to read the PDF text. When all page text is read, Orca will stop reading, because it only reads one page. To read next page you should do it manually, pressing Page Down, or navigating through widgets to Next Page widget and pressing space. Then you need to give focus to view widget to make Orca start reading again.

You can use Orca screen read functions to read line by line or word by word what it's in a PDF.

Future

Evince implements ATK interface, but that isn't perfect. There's a lot of work to do in evince to improve accessibility.

Cursor mode

Now evince implements ATK interface, but Orca can only read all page from begin to end. You can't read line by line or go back. To improve evince accessibility usability cursor mode is necessary.

Currently working

How it's implemented

ATK interface is implemented in libview/ev-view-accessible.c, there you can find each AtkText method implemented.

The implementation is based on gailtextview. To make implementation easier PDF text is stored in a GtkTextBuffer.

To get text position Poppler Glib interface have been modified (that's why Poppler 0.16 is needed).


2024-10-23 10:58