accerciser-icon.png

Accerciser's AT-SPI Validator Plugin


Accerciser's AT-SPI Validator Plugin generates a report with accessibility issues related to a target application. Besides listing the errors, the report includes their severity levels and a little description for each specific problem identified. In this page, you will find useful information about the errors pointed out by this plugin.

Note: This is a work-in-progress page. Possible solutions to errors are intended to be listed here.




Well known errors

Actionable ITEM_ROLE is not focusable or selectable

Any item that supports the action interface should also be focusable or selectable, so the user can interact with it via the keyboard.

Possible solutions

  • If the target aplication is written in GTK+ 3.0, try setting the widget's focus as TRUE. For example: let's assume the widget giving errors is acc. Then, try doing

    • gtk_widget_set_can_focus(GTK_WIDGET(acc), TRUE);

    If you're writing a custom widget, you can add this call in your init method.

Interactive ITEM_ROLE is not actionable

Any item with one of the following roles

  • push button
  • menu
  • menu item
  • check menu item
  • radio menu item
  • toggle button
  • radio button

should support the action interface.

Tips and notes

  • If you intend to implement a custom widget with any of the listed roles, remember of adding ATK_TYPE_ACTION as one of its interfaces.
  • Note: Until this page's last edition, this error was being raised for menus that compose combo boxes in GTK+ 3.0. Regular menus shouldn't raise it, as well as default gtk+ 3.0 widgets with any of the other listed roles.

More than one focused widget

The target application should have one and only one accessible item with state focused at anytime.

ITEM_ROLE has no text interface

Any item with one of the following roles

  • push button
  • menu
  • menu item
  • toggle button
  • status bar
  • table column header
  • table row header
  • spin button
  • slider
  • row header
  • column header
  • radio buttona
  • password text
  • text
  • entry
  • paragraph
  • page tab
  • list item
  • link
  • heading
  • header
  • footer
  • check box
  • caption
  • terminal

should support the text interface, since they all support stylized text.

Possible solutions

  • If the target aplication is written in GTK+ 3.0, try adding an ATK Object and setting its name. For example: let's assume the widget giving errors is acc. Then, try doing

    • AtkObject *obj;

      obj = gtk_widget_get_accessible(acc);

      atk_object_set_name(obj, STRING_NAME);

    where STRING_NAME is any string you find adequate.

ITEM_ROLE index in parent does not match child index

The indexes returned by item.getIndexInParent and item.parent.getChildAtIndex should be consistent - i.e., if

pi = item.getIndexInParent

and

child = item.parent.getChildAtIndex(pi)

then the expected behaviour should be

child == item

Missing reciprocal for RELATION_NAME relation

Any relation in the following mapping

  • label for - labelled by
  • controller for - controlled by
  • member of - member of
  • flows to - flows from
  • embeds - embedded by
  • popup for - parent window of
  • description for - described by

should point to an item having the reciprocal relation.

ITEM_ROLE missing name or label

Any accessible item with one of the following roles

  • spin button
  • slider
  • password text
  • text
  • entry
  • terminal
  • push button
  • menu
  • menu item
  • check menu item
  • radio menu item
  • toggle button
  • table column header
  • table row header
  • row header
  • column header
  • radio button
  • page tab
  • list item
  • link
  • label
  • heading
  • header
  • footer
  • check box
  • caption

should have an accessible name, a labelled by relationship, or both.

Focusable ITEM_ROLE has a table interface, but not a selection interface

A focusable accessible item with a table interface should also support a selection interface.

ITEM_ROLE has ITEM_EPHEMERAL_STATE state without ITEM_ABLE_STATE state

Any accessible item with an ephemeral state should have the corresponding -able state. The correspondencies are listed below.

  • expanded - expandable
  • collapsed - expandable
  • focused - focusable
  • selected - selectable

ITEM_ROLE does not belong to a set

An accessible item with radio button role (or radio menu item) should be a member of a set, as indicated by a relation or appropriate object property. Otherwise, the item is useless.

ITEM_ROLEs index X does not match row and column

The row/column number retrieved from a table child's item at a certain index should return the original row/column.

ITEM_ROLEs parent index X does not match row and column index Y

The parent index is the order of the child in the parent - in this case, in a table. The row and column index should be the same value retrieved by the item's location in the table.

ITEM_ROLE has no name or description

Any accessible item with an image role or image interface should have either a name, a description, or image description. The roles related to this error are listed below.

  • desktop icon
  • icon
  • animation
  • image

Apps/Accerciser/Validate (last edited 2018-02-20 08:18:57 by SvitozarCherepii)