View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005301 | Gramps | GUI - interface | public | 2011-10-14 13:17 | 2011-12-16 12:24 |
Reporter | romjerome | Assigned To | romjerome | ||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | |||||
Target Version | 3.4.x | Fixed in Version | 3.4.x | ||
Summary | 0005301: ATK support | ||||
Description | Entering birth dates and death dates. "If a person is blind, a red cell isn't really helpful." "It would help with descriptions on the buttons and a key stroke to bring up the dates dialog box for birth dates and death dates. For indicating when a date is incorrect could you at least be able to put a sound?" --mailing list TODO: 1/In glade, go for the buttons of the different editors to the ATK tab (tab with icon person in wheelchair), and set a description of the Press action 2/See if we optionally we can put a sound on a wrong date. I don't know if GTK has some build in support for that. An option so I can turn it off (don't like sounds in apps myself) 3/Try to re-use strings used by tooltips, labels, text for translators. | ||||
Additional Information | A simple test for adding accessibility support on dateedit.glade: <accessibility> <action action_name="click" description="Click"/> <action action_name="press" description="Press"/> <action action_name="release" description="Release"/> </accessibility> <child internal-child="accessible"> <object class="AtkObject" id="button176-atkobject"> <property name="AtkObject::accessible-name" translatable="yes" comments="comments for translators">Name access</property> <property name="AtkObject::accessible-description" translatable="yes" comments="Comment for translators">Description access</property> </object> </child> | ||||
Tags | accessibility, PATCH | ||||
related to | 0005314 | resolved | romjerome | Gramps 3.3.x | Missing Tags environment on MediaRef Editor |
parent of | 0003069 | closed | Gramps | GtkTreeView is very slow / crashes with Assistive Technologies / ATK / a11y enabled | |
parent of | 0005308 | closed | romjerome | Feature Requests | Review focus on Editors with toggle buttons |
parent of | 0005309 | acknowledged | Feature Requests | Review ValidatableMaskedEntry for a better Accessibility support | |
parent of | 0005312 | resolved | romjerome | Gramps 3.3.x | Make tooltip on date edition toggle button consistent |
parent of | 0005313 | confirmed | Gramps | AT-SPI issues | |
parent of | 0005310 | resolved | romjerome | Gramps 3.3.x | Missing Date field on MediaRef Editor |
related to | 0005342 | resolved | romjerome | Gramps | 'ownereditor' tool might also move to GtkBuilder for gtk+ 2.16 |
related to | 0002519 | feedback | Feature Requests | Pressing 'Enter' should normally activate OK | |
child of | 0005320 | acknowledged | Gramps | Privacy icon/button is not consistent | |
Not all the children of this issue are yet resolved or closed. |
Need something else than modification on .glade files! I enable Accessibility support (ATK) on my GNOME session, run Gramps with modified .glade for supporting ATK, and no change ... I suppose something must be also set on related python module? ie. call atk python module. http://www.pygtk.org/docs/pygtk/atk-class-reference.html |
|
I need to find good samples of pygtk applications with ATK support ... Maybe by looking at patched packages for Vinux distribution ? https://launchpad.net/~vinux/+archive/vinux-lucid Or Accessibility team ? https://launchpad.net/~accessibility https://launchpad.net/~accessibility/+related-software Related python projects: http://live.gnome.org/Accerciser https://launchpad.net/accerciser https://launchpad.net/pyspi http://git.gnome.org/browse/orca/tree/src/orca |
|
Some samples of use under python: # 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) I still cannot see what this should provide as help for accessibility... No change, even by setting 'atk' into python module ! Can 'set' or 'get' description, but what should be done with this ? To make a popup ? I see no change or visual help on interface. Otherwise, under Ubuntu, we can enable some sounds on applications. Menu: Preferences -> Sound -> check "Enable sounds on windows and buttons" |
|
"You don't need to see anything. If you use a screenreader, or a tool for blind people, it should be able to pick it up." --Benny I need to understand what Orca (GNOME desktop) is doing with or without ATK support on a gramps session. |
|
Well, I tried Orca under Gnome session and this application seems very powerful for accessiblity. It works under Gramps session and make a description of (or sound for) all fields, entries, mouse action ... http://people.gnome.org/~wwalker/demos/orca-basics.html http://people.gnome.org/~wwalker/demos/orca-basics.ogv http://people.gnome.org/~wwalker/demos/test-speech.html http://people.gnome.org/~wwalker/demos/test-speech.ogv I wonder what will be more with ATK support ! Sorry, I cannot see if I am properly making the ATK support without testing it. I will make a patch against trunk for editors like said by Benny "In glade, go for the buttons of the different editors to the ATK tab (tab with icon person in wheelchair), and set a description of the Press action". |
|
I also try to be consistent with the privacy icon! Sometimes dialog uses "gramps-unlock" reference, sometimes it is "gtk-dialog-authentication" ! I will use "gtk-dialog-authentication" everywhere on the patch. About privacy button, there is two "press actions": lock and unlock ... I only use "Privacy" for the description. |
|
I get some changes done by glade editor !-<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> - <property name="has_separator">False</property> - <property name="invisible_char">●</property> + <property name="invisible_char">?</property> - <property name="orientation">vertical</property> - <!-- interface-requires grampswidgets 0.0 --> + <!-- interface-naming-policy toplevel-contextual --> + <packing> + <property name="position">0</property> + </packing> I guess it is cleanup with a more recent glade editor (3.6.7) ? |
|
I will also add accessible-description (a child with ability to use translations) <property name="AtkObject::accessible-description" translatable="yes" comments="Comment for translators">Description access</property> |
|
ATK.py (850 bytes) |
|
I added (atk.glade, ATK.py) a quick tool (Gramps' tool/plugin) for testing accessibility on custom widget (gramps) and button into Gramps (via menu: Tools -> Family Tree processing -> ATK...)<property name="AtkObject::accessible-name" translatable="yes">works with: ValidatableMaskedEntry, UndoableEntry, StyledTextEditor For the button, orca only reads the label! Now, I will test <property name="AtkObject::accessible-description" translatable="yes">. |
|
There is already some speech when we click, unclick on a button with orca. :) But how to get the label name before the clic (on mouse over) ??? What seems rather missing is the name of the image used for toggle buttons! Otherwise, to use <property name="AtkObject::accessible-name" translatable="yes"> on custom gramps widgets might help, I will add them. I need to make a new patch. Previous one will not be really useful ... I will also start a wiki page about accessibility and Gramps. |
|
StyledTextEditor.text (91 bytes) |
|
UndoableEntry.txt (6,858 bytes) |
|
ValidatableMaskedEntry.txt (1,017 bytes) |
|
I do not know if it is important, but Locality field on address, place, location editors (glade files) do not use "undoable entry" widget but the classical "GtkEntry". Others location fields use "undoable entry". |
|
I wonder if this accessibility pach for custom gramps widgets is useful? There is already descriptions... Missing are maybe the "accessible name" on styled text widget and some help on toggle buttons! Note, the toolbar icons on screen and edition icons on Note editor might be also improved: they use icons without label. We get the button label (OK, Cancel, Help) by using the shortcut on keyboard (ie. label on button selection versus clic on button). Strange issue is that speech on "ValidatableMaskedEntry" says "Empty field" with or without data and ignores accessibility name ... Some "undoable entries" are more accessible with accessibility names (if they do not have a related Gtk label widget) the others (with a related label widget) ignore accessibility help! |
|
I made a resume of investigations on a wiki section about coding and translations: 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 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. Think on accessibility support when you use widgets without relation with a Gtk label or alone image on a toggle button, by adding: <property name="AtkObject::accessible-name" translatable="yes" comments="">Name access</property> Now, need to look at atk.RelationType 0005301:0021399 In python: 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) I need to translate this into glade... |
|
Some editors are ignoring (also on 3.2.x) tooltip for Date edition: * editevent.glade * editeventref.glade see 0005312 About relationship and toggle button, I am able to link button to the related label with something like: <object class="GtkButton" id="date_stat"> <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> <accessibility> <relation type="labelled-by" target="label209"/> </accessibility> I wonder how we have access to the toggle button if we are blind ? see 0005308 |
|
TODO: look at relation between object, tooltip, focus and coding guideline: http://developer.gnome.org/accessibility-devel-guide/stable/gad-coding-guidelines.html.fr |
|
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() and need to try Accerciser ... http://live.gnome.org/Accerciser |
|
=> need to generate a new patch according to above rules or Accerciser's output...Niveau: ERREUR Description: l'élement bouton à deux états n'a pas de nom ou d'étiquette Nom: Rôle: toggle button Hyperlien: http://live.gnome.org/Accerciser/Validate#4 Niveau: ERREUR Description: l'élément bouton à deux états n'a pas de nom ou n'a pas de description Nom: Rôle: toggle button Hyperlien: Niveau: ERREUR Description: l'élement onglet de page n'a pas de nom ou d'étiquette Nom: Rôle: page tab Hyperlien: http://live.gnome.org/Accerciser/Validate#4 Niveau: ERREUR Description: l'élement onglet de page n'a pas de nom ou d'étiquette Nom: Rôle: page tab Hyperlien: http://live.gnome.org/Accerciser/Validate#4 Niveau: ERREUR Description: l'élément actionnable boîte combinée n'est pas sélectionnable ou ne peut obtenir le focus Nom: Aperçu contient Rôle: combo box Hyperlien: http://live.gnome.org/Accerciser/Validate#1 Niveau: ERREUR Description: l'élément interactif menu n'est pas actionnable Nom: Rôle: menu Hyperlien: http://live.gnome.org/Accerciser/Validate#2 Niveau: ERREUR Description: menu n'a pas d'interface texte Nom: Rôle: menu Hyperlien: Niveau: ERREUR Description: l'élement menu n'a pas de nom ou d'étiquette Nom: Rôle: menu Hyperlien: http://live.gnome.org/Accerciser/Validate#4 Niveau: ERREUR Description: l'élement texte n'a pas de nom ou d'étiquette Nom: Rôle: text Hyperlien: http://live.gnome.org/Accerciser/Validate#4 Niveau: ERREUR Description: l'élément actionnable barre de défilement n'est pas sélectionnable ou ne peut obtenir le focus Nom: Rôle: scroll bar Hyperlien: http://live.gnome.org/Accerciser/Validate#1 |
|
* Above toggle button issues are related to a button with image close to 'Families Trees' string, I cannot localize it. * Above tab and combo box issues are related to Navigation bar (same into workspace with scroll bar) *Above menu issues are related to the search bar and its child "Description contains" (text and action) Move these informations into a new bug report => 0005313 |
|
At the end of my investigations, I will try to provide a patch against trunk for a better accessibility support. I listed the common rules on wiki: http://www.gramps-project.org/wiki/index.php?title=Accessibility#Into_Glade 1. A GtkLabel with mnemonic support will automaticaly generate accessibility keys on linked GtkEntry and UndoableEntry fields. Remember that Gramps also uses custom widgets like StyledTextEditor and ValidatableMaskedEntry, which do not always have relation with a GtkLabel. In this case, we need to set a relation. 2. Gramps often uses GtkToggleButtons and alone GtkPixmap (image without label), this excludes blind people and generates a poor interface for accessibility. Solutions could be: 1. Set mnemonic_widget() on some Gtklabel, this will generate a description for the related entry. An alternative could be to set an accessibility name on entry field. 2. Think on focus and mnemonic for buttons and description for images |
|
I think I get my sample/template for buttons: http://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-BUILDER-UI<object class="GtkButton" id="label1"/> <property name="label">I am a Label for a Button</property> </object> <object class="GtkButton" id="button1"> <accessibility> <action action_name="click" translatable="yes">Click the button.</action> <relation target="label1" type="labelled-by"/> </accessibility> <child internal-child="accessible"> <object class="AtkObject" id="a11y-button1"> <property name="AtkObject::name">Clickable Button</property> </object> </child> </object> TODO: Need to re-check above patch ... |
|
atk.glade (14,434 bytes) |
|
ATK.patch (174,458 bytes) |
|
Added simple accelerator keys on next version (ATK.patch) <control>p : private button <control>d : date button <control>e : edition button <control>s : selector button <control>f : edition father button <control>m : edition mother button <control>a : add button where <control> is a "GDK_CONTROL_MASK". On Object Reference editors, key for the private button is only active for the reference section. Ability to make the shared record private into main object editors. TO_CHECK: does "GDK_CONTROL_MASK" works under MacOS ? 0004546 |
|
Patch commited against trunk (rev18380): http://gramps.svn.sourceforge.net/viewvc/gramps?view=revision&revision=18380 |
|
bookreport.glade (28,665 bytes) |
|
Need to also look at tools (some glade files): * bookreport * ownereditor 'ownereditor' might also move to GtkBuilder for gtk+ 2.16: Pop-up menu for [copy_from_db_to_preferences] ! => 0005342 |
|
ownereditor.glade (19,306 bytes) |
|
Last 'ATK support' for 'editcitation.glade'. http://gramps.svn.sourceforge.net/viewvc/gramps?view=revision&revision=18607 Editors should be consistent. Need to look at related/children bugs (see above links) for some specific issues. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2011-10-14 13:17 | romjerome | New Issue | |
2011-10-14 13:17 | romjerome | Status | new => assigned |
2011-10-14 13:17 | romjerome | Assigned To | => romjerome |
2011-10-14 15:08 | romjerome | Project | Feature Requests => Gramps |
2011-10-14 15:08 | romjerome | Category | Interface => General |
2011-10-14 15:08 | romjerome | Category | General => GUI - interface |
2011-10-14 15:08 | romjerome | Target Version | => 3.4.x |
2011-10-15 07:19 | romjerome | Note Added: 0021392 | |
2011-10-15 07:29 | romjerome | Relationship added | parent of 0003069 |
2011-10-15 07:30 | romjerome | Note Edited: 0021392 | View Revisions |
2011-10-15 12:38 | romjerome | Note Added: 0021394 | |
2011-10-15 12:45 | romjerome | Note Edited: 0021394 | View Revisions |
2011-10-15 13:38 | romjerome | Note Added: 0021399 | |
2011-10-15 14:33 | romjerome | Note Added: 0021402 | |
2011-10-15 17:25 | romjerome | Note Edited: 0021394 | View Revisions |
2011-10-15 17:35 | romjerome | Note Added: 0021405 | |
2011-10-15 17:47 | romjerome | Note Edited: 0021405 | View Revisions |
2011-10-15 19:04 | romjerome | Note Added: 0021406 | |
2011-10-16 10:03 | romjerome | File Added: ATK.patch | |
2011-10-16 10:10 | romjerome | Note Added: 0021410 | |
2011-10-16 17:36 | romjerome | Description Updated | View Revisions |
2011-10-17 08:37 | romjerome | Note Added: 0021424 | |
2011-10-17 19:05 | romjerome | File Added: ATK.py | |
2011-10-17 19:05 | romjerome | File Added: atk.glade | |
2011-10-17 19:12 | romjerome | Note Added: 0021442 | |
2011-10-17 19:13 | romjerome | Note Edited: 0021442 | View Revisions |
2011-10-18 12:18 | romjerome | File Deleted: atk.glade | |
2011-10-18 12:18 | romjerome | File Added: atk.glade | |
2011-10-18 13:02 | romjerome | Note Added: 0021449 | |
2011-10-18 13:43 | romjerome | File Added: StyledTextEditor.text | |
2011-10-18 13:44 | romjerome | File Added: UndoableEntry.txt | |
2011-10-18 13:44 | romjerome | File Added: ValidatableMaskedEntry.txt | |
2011-10-18 13:46 | romjerome | Note Edited: 0021449 | View Revisions |
2011-10-18 13:46 | romjerome | Note Edited: 0021449 | View Revisions |
2011-10-18 16:11 | romjerome | File Deleted: ATK.patch | |
2011-10-18 16:11 | romjerome | File Added: ATK.patch | |
2011-10-18 16:11 | romjerome | Tag Attached: PATCH | |
2011-10-18 16:16 | romjerome | Note Edited: 0021449 | View Revisions |
2011-10-18 16:56 | romjerome | Note Added: 0021452 | |
2011-10-18 17:39 | romjerome | File Deleted: ATK.patch | |
2011-10-18 17:39 | romjerome | File Added: ATK.patch | |
2011-10-18 18:46 | romjerome | Note Edited: 0021452 | View Revisions |
2011-10-18 18:46 | romjerome | Note Edited: 0021452 | View Revisions |
2011-10-18 18:56 | romjerome | Note Added: 0021456 | |
2011-10-18 18:56 | romjerome | Note Edited: 0021456 | View Revisions |
2011-10-18 18:57 | romjerome | Note Edited: 0021456 | View Revisions |
2011-10-19 05:55 | romjerome | Note Edited: 0021456 | View Revisions |
2011-10-19 06:07 | romjerome | Note Added: 0021464 | |
2011-10-19 06:07 | romjerome | Note Edited: 0021464 | View Revisions |
2011-10-19 08:58 | romjerome | Note Added: 0021465 | |
2011-10-19 08:58 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 08:59 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 08:59 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 08:59 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 09:00 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 09:02 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 09:02 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 10:33 | romjerome | File Deleted: ATK.patch | |
2011-10-19 10:33 | romjerome | File Added: ATK.patch | |
2011-10-19 10:48 | romjerome | Relationship added | parent of 0005308 |
2011-10-19 10:54 | romjerome | Relationship added | parent of 0005309 |
2011-10-19 10:55 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 12:04 | romjerome | File Deleted: atk.glade | |
2011-10-19 12:04 | romjerome | File Added: atk.glade | |
2011-10-19 12:23 | romjerome | Relationship added | parent of 0005312 |
2011-10-19 12:24 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 12:24 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 12:24 | romjerome | Note Edited: 0021465 | View Revisions |
2011-10-19 12:30 | romjerome | Note Edited: 0021456 | View Revisions |
2011-10-19 12:30 | romjerome | Note Edited: 0021464 | View Revisions |
2011-10-19 13:26 | romjerome | Note Added: 0021468 | |
2011-10-19 13:32 | romjerome | Note Edited: 0021468 | View Revisions |
2011-10-19 13:41 | romjerome | Note Added: 0021469 | |
2011-10-19 13:45 | romjerome | Note Added: 0021471 | |
2011-10-19 14:17 | romjerome | Note Edited: 0021471 | View Revisions |
2011-10-19 14:18 | romjerome | Note Edited: 0021471 | View Revisions |
2011-10-19 14:54 | romjerome | Note Added: 0021472 | |
2011-10-19 14:59 | romjerome | Note Edited: 0021472 | View Revisions |
2011-10-19 14:59 | romjerome | Relationship added | parent of 0005313 |
2011-10-19 15:00 | romjerome | Tag Attached: accessibility | |
2011-10-19 17:05 | romjerome | Relationship added | parent of 0005310 |
2011-10-20 08:26 | romjerome | File Deleted: atk.glade | |
2011-10-20 08:26 | romjerome | File Added: atk.glade | |
2011-10-20 09:16 | romjerome | File Deleted: atk.glade | |
2011-10-20 09:17 | romjerome | File Added: atk.glade | |
2011-10-20 10:30 | romjerome | File Deleted: atk.glade | |
2011-10-20 10:31 | romjerome | File Added: atk.glade | |
2011-10-20 10:47 | romjerome | Note Added: 0021480 | |
2011-10-20 10:48 | romjerome | Note Edited: 0021480 | View Revisions |
2011-10-20 10:48 | romjerome | Note Edited: 0021480 | View Revisions |
2011-10-20 13:14 | romjerome | File Deleted: ATK.patch | |
2011-10-20 13:22 | romjerome | Note Edited: 0021480 | View Revisions |
2011-10-20 15:57 | romjerome | File Added: ATK.patch | |
2011-10-20 20:12 | romjerome | File Deleted: ATK.patch | |
2011-10-20 20:13 | romjerome | File Added: ATK.patch | |
2011-10-21 07:50 | romjerome | Relationship added | child of 0005320 |
2011-10-21 08:42 | romjerome | Relationship added | related to 0005314 |
2011-10-26 18:12 | romjerome | Note Added: 0021595 | |
2011-10-26 18:13 | romjerome | Note Edited: 0021595 | View Revisions |
2011-10-26 18:19 | romjerome | Note Edited: 0021595 | View Revisions |
2011-10-26 18:30 | romjerome | Note Edited: 0021595 | View Revisions |
2011-10-26 18:31 | romjerome | Note Edited: 0021595 | View Revisions |
2011-10-27 09:43 | romjerome | File Deleted: atk.glade | |
2011-10-27 09:43 | romjerome | File Added: atk.glade | |
2011-10-27 15:22 | romjerome | File Deleted: atk.glade | |
2011-10-27 15:22 | romjerome | File Deleted: ATK.patch | |
2011-10-27 15:22 | romjerome | File Added: atk.glade | |
2011-10-27 15:22 | romjerome | File Added: ATK.patch | |
2011-10-27 15:28 | romjerome | Note Added: 0021610 | |
2011-10-27 15:32 | romjerome | Note Edited: 0021610 | View Revisions |
2011-10-29 09:47 | romjerome | Note Added: 0021645 | |
2011-10-31 14:38 | romjerome | File Added: bookreport.glade | |
2011-10-31 14:39 | romjerome | File Added: ownereditor.glade | |
2011-10-31 14:42 | romjerome | Note Added: 0021663 | |
2011-10-31 14:46 | romjerome | Relationship added | related to 0005342 |
2011-10-31 14:47 | romjerome | Note Edited: 0021663 | View Revisions |
2011-10-31 17:52 | romjerome | File Deleted: ownereditor.glade | |
2011-10-31 17:52 | romjerome | File Added: ownereditor.glade | |
2011-11-06 09:47 | romjerome | Relationship added | related to 0002519 |
2011-12-16 12:23 | romjerome | Note Added: 0022241 | |
2011-12-16 12:24 | romjerome | Status | assigned => resolved |
2011-12-16 12:24 | romjerome | Fixed in Version | => 3.4.x |
2011-12-16 12:24 | romjerome | Resolution | open => fixed |