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


[Home] [TitleIndex] [WordIndex

1. Accessible widgets best practices

When implementing the accessibility representations for widgets, it is good if all implementations follow some schemes. To make it easier for the client side, we propose a few ways of representing widgets where the structure is not really clear.

Below we use the AT-SPI role to denote items. Each item has to be there exactly once, unless marked with + for 1 to many or * for 0 to many.

2. DONE:

This is mostly for the menu bar of an application - File, Edit etc.

There is one menu bar as root element, it has any number of menu as children. menu can have menu and menu item as children. menu item does not have children.

2.2. Combo Boxes

The Accessible Name of the combo box accessible is the current text that is displayed. This text can be typed by the user or one of the selected items.

3. IN PROGRESS:

3.1. List

A list has only one column. It contains items.

3.2. Table

current state in gtk: it would be difficult to provide row objects

Web: firefox usually has rows, but sometimes it can happen that rows are not present (like html role presentation or css hidden)

should headers be mandatory? should it be table header row for the first row?

IA2: all cells are children of the table object. there are no row objects. like gtk.

One big concern was notifications about selection changes. It would be great to get notified for things such as row selected. There are two ways to tackle this: in the first approach (gtk) we could define a signal: rows-selected() and rows-deselected or somesuch in the second approach with rows, the row object could be sent as selected. this has the downside that there is no way to do the same for columns. it is less flexible. IA2 has functions to get selected rows/columns

3.3. Trees

The reason for the variety of trees that are possible is mostly that ARIA has very flexible tree definitions. The web implementators will simply expose that.

Tree has exactly one column. For trees with more than one column the tree table has to be used.

Tree items can contain a grouping element. In the grouping element it can have other items.

3.3.1. Tree 1: define hierarchy through relations and group positions

This tree works with add/remove tree items when they get expanded/collapsed.

3.3.2. Tree 2: real hierarchy

The items are arranged as children.

No need for add/remove for expanding/collapsing of sub items.

3.3.3. Tree 3: Tree Table

Tree tables can not be hierarchical. tree table can have more than one column


2024-10-23 11:10