4. Tables Navigating and setting dynamic headers Joanmarie Diggs joanied@gnome.org

Creative Commons Share Alike 3.0

Tables

Cthulhu provides several features specifically designed to improve access to tables found in web pages and other documents: configurable cell versus row reading, Structural Navigation and Dynamic Headers.

Cell Versus Row Reading

Consider the process of examining the list of messages in your Inbox. In order to have Cthulhu announce the sender, subject, date, and presence of attachments you would need Cthulhu to speak the row. On the other hand, when navigating amongst rows in a spreadsheet, hearing the full row may not be desired if for no other reason than the sheer number of cells in each row. Thus in that case, you would want Cthulhu to only speak the cell with focus. Similar situations occur in document tables.

Cthulhu allows you to customize whether only the cell should be read, or if the full row should be, for GUI tables, document tables, and spreadsheets. Because these settings are independent of one another, you do not have to choose one table reading mode to fit multiple types of tables.

You can set each of Cthulhu's table reading preferences Cthulhu wide as well as on an application-by-application basis. How to do each is described in the guide on Cthulhu's preferences dialogs. The settings can be found on the Speech page.

Lastly, there is also an Cthulhu command which allows you to toggle cell versus row reading on the fly for the currently-active table: Cthulhu ModifierF11.

Structural Navigation

Cthulhu's table Structural Navigation commands make it possible for you to quickly locate tables, jump immediately to a table's first or last cell, and move to the next cell in any direction.

As you navigate amongst and within tables using Structural Navigation, Cthulhu will announce additional details to help you understand your position, such as the dimensions of the table you just entered and the fact that you have reached the edge of the table in the direction you are moving.

In addition, Cthulhu provides configurable presentation options which work in conjunction with Structural Navigation and allow you to control whether or not cell coordinates are presented, multiple cell spans are indicated, and cell headers are announced.

Don't Forget To Toggle Structural Navigation On!

Depending on where you are, it may be necessary for you to explicitly toggle Structural Navigation on before you can use it. To learn more, read when toggling Structural Navigation on is required.

Dynamic Headers

Many of the tables you will encounter while reading have cells which serve as the header for a row or a column. Whether or not the creator of that table correctly marked those cells as headers is hard to say. In many cases, the text was simply formatted to be larger and/or bold. And even if the table is correctly marked up, that is no guarantee that the application or toolkit exposes that text as header information to assistive technologies. Cthulhu's Dynamic Header support makes it possible to overcome these challenges.

Setting Column Headers

Move to the row which contains all of the column headers.

Press Cthulhu ModifierR to tell Cthulhu that the current row is the one with the headers.

Setting Row Headers

Move to the column which contains all of the row headers.

Press Cthulhu ModifierC to tell Cthulhu that the current column is the one with the headers.

Having set either the column headers or the row headers, you should find that as you navigate amongst the cells, Cthulhu will present each header that has changed. Or to put it another way, Cthulhu will not present the column header over and over again as you move up or down within the current column. Likewise, it will not present the row header over and over again as you move left or right within the current row. However, if you change rows and there are row headers, the header associated with the new row will be presented. And if you change columns and there are column headers, the header associated with the new column will be presented.

To clear headers, simply double-click the command you used to set them. Thus double-clicking Cthulhu ModifierR tells Cthulhu there are no column headers. Double-clicking Cthulhu ModifierC tells Cthulhu there are no row headers.