Changes

Jump to: navigation, search

Accessibility

3,992 bytes added, 08:52, 30 July 2014
m
no edit summary
=Accessibility The Gramps project aims to provide the best [http://en.wikipedia.org/wiki/Computer_accessibility accessibility] support=.
Unfortunately, not all parts of the Gramps interface have been tested for persons with disabilities. The Gramps team will try to do its best to support complete accessibility. ==Accessibility support== ===Into Glade=== In addition to [https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-add-accelerator accelerators], ''[https://developer.gnome.org/gtk3/stable/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 ''[https://developer.gnome.org/gtk3/stable/GtkWidget.html GtkWidget]''. See [https://developer.gnome.org/gtk3/stable/GtkBuilder.html GtkBuilder UI]. * Gtk label ''A [https://developer.gnome.org/gtk3/stable/GtkLabel.html GtkLabel]'' '''with mnemonic support''' will automatically generate accessibility keys on linked ''[https://developer.gnome.org/gtk3/stable/GtkEntry.html GtkEntry]'' and ''UndoableEntry'' fields. Remember that Gramps also uses custom widgets like ''StyledTextEditor'' and ''ValidatableMaskedEntry'', which do not always have relation with a ''GtkLabel''. * Toggle buttons and Icons on toolbar Gramps often uses ''[https://developer.gnome.org/gtk3/stable/GtkToggleButton.html GtkToggleButtons]'' and alone ''[https://developer.gnome.org/gtk3/stable/GtkImage.html GtkImage]'' (image without label), this excludes blind people and generates a poor interface for accessibility. ====Rules for images and buttons==Links==
* [http://projects# Set a name (eg, same as tooltip) for a button with image.gnome.org/accessibility/ GNOME Accessibility] provides some guidances:** http://library.gnome.org/users/gnome-help/stable/a11y.html** http://library.gnome.org/users/gnome-access-guide/stable/** http://developer.gnome# Set a description for all images and icons.org/accessibility-devel-guide/stable/
* [http: <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</accessibility.kde.orgproperty> <property name="tooltip_text" translatable="yes">Invoke date editor</property> <property name="relief">none</ KDE accessibility team] is a small onproperty> <child internal-line community of developers and other volunteers dedicated to ensure that our favorite desktop is child="accessible to all users, including those of us with physical handicaps.">** http <object class="AtkObject" id="date_edit-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Date</property> </accessibility.kde.orgobject> </developerchild> <child> <object class="GtkImage" id="image2264"> <property name="visible">True</atk.phpproperty> <property name="icon_name">gramps-date</property> <child internal-child="accessible">** http <object class="AtkObject" id="image2264-atkobject"> <property name="AtkObject::accessible-description" translatable="yes">Date</property> </accessibility.kde.orgobject> </developerchild> </comparision.phpobject>** http: </child> </accessibility.kde.org/developer/bridge.phpobject>
* [http://www.aegis-project.eu/ AEGIS] acronym stands ====Rules for ''Open Accessibility Everywhere: Groundwork, Infrastructure, Standards''.labels and buttons====
* [http://www.projectpossibility.org/ Possibility] project is A label for others widgets should use mnemonic_widget() or a nonprofit organization dedicated to creating groundbreaking open source software for persons with disabilitiesrelation.
<object class="GtkLabel" id=Gramps"label2"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">La_bel:</property> <property name="use_underline">True</property> <property name="justify">center</property> <property name="mnemonic_widget">related_label_entry_name</property> </object>
Gramps aims to provide the best <object class="GtkButton" id="button1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <accessibility support.>Unfortunatly, all parts of the interface have not been always tested for persons with disabilities. <relation type="labelled-by" target="label4"/>Gramps team try to do its best for a complete </accessibility support.> </object>
===Into Glade=Rules for entry====
* Gtk Set a name (eg, same as tooltip) if there is no linked mnemonic_widget() on a label.
''[http: <object class="StyledTextEditor" id="styled_text1"> <property name="visible">True</property> <property name="can_focus">True</developer.gnome.org/gtk/2.24/GtkLabel.html GtkLabel]'' automaticaly generates accessibility keys on next ''[httpproperty> <child internal-child="accessible"> <object class="AtkObject" id="styled_text1-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Styled Text Editor</property> </developer.gnome.orgobject> </gtk/2.24child> </GtkEntry.html GtkEntry]]'' and ''UndoableEntry'' fields.Remember that Gramps also uses custom widgets like ''StyledTextEditor'' and ''ValidatableMaskedEntry'', which do not always provide relation with a ''GtkLabel''.object>
* Toggle buttons ====Focus and Icons on toolbartooltip====
Gramps often uses ''[http://developer.gnome.org/gtk/2.24/GtkToggleButton.html GtkToggleButtons]'' and alone ''[http://developer.gnome.org/gtk/2.24/GtkPixmap.html GtkPixmap]'' (image without label), this excludes blind people and generates a poor interface for accessibility.
====Rules (draft)====* Think on focus for button.
# set a <object class="GtkToggleButton" id="togglebutton1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name for a button with image ="has_focus">True</property> like atk_object_set_name()# alternative to tooltip is the description <property name="is_focus">True</property> <property name="receives_default">True</property> like atk_object_set_description()# for all images and icons use something <property name="active">True</property> like atk_image_set_description()# a label for other widget should use mnemonic_widget() or a relation <property name="draw_indicator">True</property> </object> like atk_relation_set_add_relation()
'''''TODO''''' need to look further for better tricks (''previous and next sections'') and use of * Think on 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="has_tooltip">Name accessTrue</property> ... <accessibility> <relation typeproperty name="labelled-bytooltip_text" targettranslatable="label209yes"/> Display a tooltip</accessibilityproperty>
===Into python===
====SampleATK object====
# mark the root of this window with its PID so we can easily identify it
label_acc.add_relationship(atk.RelationType.LABEL_FOR, entry_acc)
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 a an [http://live.gnome.org/Accerciser/Validate AT-SPI Validator Plugin] #{{bug|5313}}. ==Links== * [https://wiki.gnome.org/Accessibility GNOME Accessibility] provides some guidances:** https://help.gnome.org/users/gnome-help/stable/a11y.html** http://library.gnome.org/users/gnome-access-guide/stable/ (link 404 gone)** https://developer.gnome.org/accessibility-devel-guide/stable/ * [http://accessibility.kde.org/ KDE accessibility team] is a small on-line community of developers and other volunteers dedicated to ensure that our favorite desktop is accessible to all users, including those of us with physical handicaps.** http://accessibility.kde.org/developer/atk.php** http://accessibility.kde.org/developer/comparision.php** http://accessibility.kde.org/developer/bridge.php * [http://www.aegis-project.eu/ AEGIS] acronym stands for ''Open Accessibility Everywhere: Groundwork, Infrastructure, Standards''. * [http://www.projectpossibility.org/ Possibility] project is a nonprofit organization dedicated to creating groundbreaking open source software for persons with disabilities.
===Bugs * [http://accelibreinfo.eu Accelibreinfo]: a new eye on computing, improve the accessibility and feature requests===setting computer.
==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
* #{{bug|5301}}: ATK support
* #{{bug|5308}}: Review focus on Editors with toggle buttons
* #{{bug|5309}}: Review ValidatableMaskedEntry for a better Accessibility support
* #{{bug|5310}}: Missing Date field on MediaRef Editor
* #{{bug|5312}}: Make tooltip on date edition toggle button consistent
* #{{bug|5313}}: AT-SPI issues
* #{{bug|5314}}: Missing Tags environment on MediaRef Editor
* #{{bug|5320}}: Privacy icon/button 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 =
 
* [[Usability]]
* [[OptimizeMenuNames]]
[[Category:Developers/General]]
[[Category:Developers/Design]]

Navigation menu