Accessibility in Evince
- Since 2.32
Poppler >= 0.16
How to use
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.
Evince implements ATK interface, but that isn't perfect. There's a lot of work to do in evince to improve accessibility.
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.
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).