Changes

Jump to: navigation, search

Accessibility

4,063 bytes added, 10:44, 25 February 2012
Links
* [http://www.projectpossibility.org/ Possibility] project is a nonprofit organization dedicated to creating groundbreaking open source software for persons with disabilities.
 
* [http://accelibreinfo.eu Accelibreinfo]: a new eye on computing, improve the accessibility and setting computer.
==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===
 
In addition to [http://developer.gnome.org/gtk/2.24/GtkWidget.html#id1294298 accelerators], ''[http://developer.gnome.org/gtk/2.24/GtkWidget.html GtkWidget]'' also support a custom <accessible> element, which supports actions and relations. Properties on the accessible implementation of an object can be set by accessing the internal child "accessible" of a ''[http://developer.gnome.org/gtk/2.24/GtkWidget.html GtkWidget]''. See [http://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-BUILDER-UI GtkBuilder UI].
* Gtk label
''A [http://developer.gnome.org/gtk/2.24/GtkLabel.html GtkLabel]'' '''with mnemonic support''' will automaticaly generates generate accessibility keys on next linked ''[http://developer.gnome.org/gtk/2.24/GtkEntry.html GtkEntry]'' and ''UndoableEntry'' fields.Remember that Gramps also uses custom widgets like ''StyledTextEditor'' and ''ValidatableMaskedEntry'', which do not always provide have relation with a ''GtkLabel''.
* Toggle buttons and Icons on toolbar
Gramps often uses toggle buttons ''[http://developer.gnome.org/gtk/2.24/GtkToggleButton.html GtkToggleButtons]'' and alone ''[http://developer.gnome.org/gtk/2.24/GtkImage.html GtkImage]'' (image (no without label), this excludes blind people and generates a poor interface for accessibility. ====Rules for images and buttons==== # Set a name (eg, same as tooltip) for a button with image.# Set a description for all images and icons.  <object class="GtkButton" id="date_edit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="has_tooltip">True</property> <property name="tooltip_text" translatable="yes">Invoke date editor</property> <property name="relief">none</property> <child internal-child="accessible"> <object class="AtkObject" id="date_edit-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Date</property> </object> </child> <child> <object class="GtkImage" id="image2264"> <property name="visible">True</property> <property name="icon_name">gramps-date</property> <child internal-child="accessible"> <object class="AtkObject" id="image2264-atkobject"> <property name="AtkObject::accessible-description" translatable="yes">Date</property> </object> </child> </object> </child> </object> ====Rules for labels and buttons====
====Rules * A label for others widgets should use mnemonic_widget(draft)====or a relation.
# set a <object class="GtkLabel" id="label2"> <property name="visible">True</property> <property name="xalign">0</property> <property name for a button with image ="label" translatable="yes">La_bel:</property> like atk_object_set_name()# alternative to tooltip is the description <property name="use_underline">True</property> like atk_object_set_description()# for all images and icons use something <property name="justify">center</property> like atk_image_set_description()# a label for other widget should use <property name="mnemonic_widget() or a relation =">related_label_entry_name</property> </object> like atk_relation_set_add_relation()
'''''TODO''''' need to look further for better tricks (''previous and next sections'') and use of tooltip with ATK. <object class="GtkButton" id="button1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <accessibility> <relation type="labelled-by" target="label4"/> </accessibility> </object>
Think on accessibility support ====Rules for widgets without Gtk label or alone image entry==== * Set a name (eg, same as tooltip) if there is no linked mnemonic_widget() on a toggle button, by adding:label.  <object class="StyledTextEditor" id="styled_text1"> <property name="visible">True</property> <property name="can_focus">True</property> <child internal-child="accessible"> <object class="AtkObject" id="styled_text1-atkobject"> <property name="AtkObject::accessible-name" translatable="yes" comments>Styled Text Editor</property> </object> </child> </object> ====Focus and tooltip====  * Think on focus for button.  <object class="GtkToggleButton"id="togglebutton1"> <property name="visible">True</property>Name access <property name="can_focus">True</property> ... <property name="has_focus">True</property> <property name="is_focus">True</property> <property name="receives_default">True</property> <property name="active">True<accessibility/property> <relation typeproperty name="labelled-bydraw_indicator" target>True</property> </object> * Think on tooltip.  <property name="label209has_tooltip">True</property> <property name="tooltip_text" translatable="yes">Display a tooltip</accessibilityproperty>
===Into python===
====SampleATK object====
# mark the root of this window with its PID so we can easily identify it
entry_acc.add_relationship(atk.RelationType.LABELLED_BY, label_acc)
====Focus====
 
Sample for setting the [http://developer.gnome.org/gtk/2.24/GtkWidget.html#gtk-widget-grab-focus focus] on the date field if that date field is empty:
 
def _post_init(self):
date = self.top.get_object('eer_date_entry')
if not date.get_text_length():
date.grab_focus();
 
====Validate====
 
[http://live.gnome.org/Accerciser/ Accerciser] provides an [http://live.gnome.org/Accerciser/Validate AT-SPI Validator Plugin] #{{bug|5313}}.
===Bugs and feature requests===
* #{{bug|2519}}: Pressing 'Enter' should normally activate OK * #{{bug|3069}}: GtkTreeView is very slow / crashes with Assistive Technologies / ATK / a11y enabled [http://www.gramps-project.org/bugs/view.php?id=3069]* #{{bug|5301}}: ATK support [http://www.gramps-project.org/bugs/view.php?id=5301] * #{{bug|5308}}: Review focus on Editors with toggle buttons [http://www.gramps-project.org/bugs/view.php?id=5308]* #{{bug|5309}}: Review ValidatableMaskedEntry for a better Accessibility support [http* #{{bug|5310}}: Missing Date field on MediaRef Editor * #{{bug|5312}}: Make tooltip on date edition toggle button consistent * #{{bug|5313}}://www.grampsAT-project.orgSPI issues * #{{bug|5314}}: Missing Tags environment on MediaRef Editor* #{{bug|5320}}: Privacy icon/bugs/view.php?idbutton is not consistent* #{{bug|5349}}: Filter and "Quick Filter" are not applied when you press [Enter]* #{{bug|5350}}: Focus on the "Quick Filter" field is lost after clicking on "Find"* #{{bug|5351}}: Focus on event window should be set to "Event type" by default = Related pages =5309]
* [[Usability]]
* [[OptimizeMenuNames]]
[[Category:Developers/General]]

Navigation menu