Accessibility

From Gramps
Revision as of 21:21, 19 October 2011 by Gioto (talk | contribs) (Validate: replace with bug template)
Jump to: navigation, search

Accessibility support

Links

  • AEGIS acronym stands for Open Accessibility Everywhere: Groundwork, Infrastructure, Standards.
  • Possibility project is a nonprofit organization dedicated to creating groundbreaking open source software for persons with disabilities.

Gramps

Gramps aims to provide the best accessibility support. Unfortunatly, all parts of the interface have not been always tested for persons with disabilities. Gramps team try to do its best for a complete accessibility support.

Into Glade

  • Gtk label

GtkLabel automaticaly generates accessibility keys on next GtkEntry and UndoableEntry fields. Remember that Gramps also uses custom widgets like StyledTextEditor and ValidatableMaskedEntry, which do not always provide relation with a GtkLabel.

  • Toggle buttons and Icons on toolbar

Gramps often uses toggle buttons and alone image (no label), this excludes blind people and generates a poor interface for accessibility.

Rules (draft)

  1. set a name for a button with image => like atk_object_set_name()
  2. alternative to tooltip is the description => like atk_object_set_description()
  3. for all images and icons use something => like atk_image_set_description()
  4. a label for other widget should use mnemonic_widget() or a relation => like atk_relation_set_add_relation()

TODO need to look further for better tricks (previous and next sections) and use of tooltip with ATK.

Think on accessibility support for widgets without Gtk label or alone image on a toggle button, by adding:

<property name="AtkObject::accessible-name" translatable="yes" comments="">Name access</property>
...
<accessibility>
  <relation type="labelled-by" target="label209"/>
</accessibility>

Into python

Sample

# mark the root of this window with its PID so we can easily identify it
# as this app
root_atk = atk.get_root()
root_atk.set_description(str(os.getpid()))
label_acc = label_widget.get_accessible()
entry_acc = entry.get_accessible()
label_acc.add_relationship(atk.RelationType.LABEL_FOR, entry_acc)
entry_acc.add_relationship(atk.RelationType.LABELLED_BY, label_acc)

Validate

Accerciser provides a AT-SPI Validator Plugin 5301#c21471.

Bugs and feature requests

  • #3069: GtkTreeView is very slow / crashes with Assistive Technologies / ATK / a11y enabled
  • #5301: ATK support
  • #5308: Review focus on Editors with toggle buttons
  • #5309: Review ValidatableMaskedEntry for a better Accessibility support