Re: F10 and menubars



I have looked at this some more and found that the proposed change is not 
adequate.

I hope to come up with a better fix soon.

Padraig

> 
> I have spent some time looking at the source and found that a change was made 
to 
> gtkmenuitem.c by Owen Taylor on April 7th 2000 to select the first item in a 
> submenu when a menu item was activated.
> 
> If I understand correctly the desired behavior, from an Accessibility point of 
> view, when F10 is pressed is that the first menu item in the menu bar is 
> activated; this will cause the submenu to be displayed but the focus will 
remain 
> on the menu title in the menu bar. The effect should be the same as if the 
mouse 
> was clicked on the first menu title in the menu bar.
> 
> Below is a patch to achieve this effect.
> 
> Padraig
> 
> 
> Index: gtkmenuitem.c
> ===================================================================
> RCS file: /cvs/gnome/gtk+/gtk/gtkmenuitem.c,v
> retrieving revision 1.58
> diff -u -p -r1.58 gtkmenuitem.c
> --- gtkmenuitem.c       2001/09/19 21:29:57     1.58
> +++ gtkmenuitem.c       2001/09/28 16:11:16
> @@ -647,7 +647,6 @@ static void
>  gtk_real_menu_item_activate_item (GtkMenuItem *menu_item)
>  {
>    GtkWidget *widget;
> -  GtkMenuShell *submenu; 
>  
>    g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
>  
> @@ -671,11 +670,6 @@ gtk_real_menu_item_activate_item (GtkMen
>             }
>  
>           gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), 
widget); 
> -         gtk_menu_item_popup_submenu (widget); 
> -
> -         submenu = GTK_MENU_SHELL (menu_item->submenu);
> -         if (submenu->children)
> -           gtk_menu_shell_select_item (submenu, submenu->children->data);
>         }
>      }
>  }
> Index: gtkmenu.c
> ===================================================================
> RCS file: /cvs/gnome/gtk+/gtk/gtkmenu.c,v
> retrieving revision 1.72
> diff -u -p -r1.72 gtkmenu.c
> --- gtkmenu.c   2001/08/25 03:15:26     1.72
> +++ gtkmenu.c   2001/09/28 16:11:17
> @@ -31,6 +31,7 @@
>  #include "gtklabel.h"
>  #include "gtkmain.h"
>  #include "gtkmenu.h"
> +#include "gtkmenubar.h"
>  #include "gtkmenuitem.h"
>  #include "gtksignal.h"
>  #include "gtkwindow.h"
> @@ -632,9 +633,14 @@ gtk_menu_popup (GtkMenu                *menu,
>        /* Also, if we're popping up from a key event, select the first
>         * item in the menu. Bad hack, but no better way to do it
>         * in current menu framework.
> +       *
> +       * But do not select first item if the parent of the menu is a 
> +       * menu bar. This is to allow F10 to select first menu in menu bar
> +       * without selecting first item in menu.
>         */
>        if (current_event->type == GDK_KEY_PRESS &&
> -          GTK_MENU_SHELL (menu)->children)
> +          GTK_MENU_SHELL (menu)->children &&
> +          (!GTK_IS_MENU_BAR (parent_menu_shell)))
>          {
>            gtk_menu_shell_select_item (GTK_MENU_SHELL (menu),
>                                        GTK_MENU_SHELL (menu)->children->data);
> 
> 
> > 
> > Owen Taylor wrote:
> > 
> > > As far as highlighting menu items without selecting the submenu ...
> > > I don't think it's really worth the work that it would take
> > > to implement it ... it's not really a functionality thing, just
> > > a cosmetic detail.
> > 
> > There are, I believe, a couple of accessibility reasons for giving focus
> > to the menu title rather than straight to the first item on the menu. 
> > (And likewise for subsequently giving focus to neighbouring menu titles
> > as you navigate along the menu bar, until you explicitly navigate down
> > into a menu).  
> > 
> > One of these is that if the menu title is given focus, then a
> > screenreader will presumably just read out the menu title, whereas if an
> > item on that menu is given focus instead, there's no easy way for a
> > blind user to determine the name of the menu that has focus.  (This, I
> > assume, is why Windows and Java both give focus to menu titles rather
> > than menu items when you press F10.)  
> > 
> > A screenreader could admittedly include extra functionality to work
> > around this, but Bill did mention another situation where giving focus
> > to the menu title is preferable.  Which I've temporarily forgotten, but
> > you can read it in a recent post of his to the accessibility list :o)
> > 
> > Cheeri,
> > Calum.
> > 
> > -- 
> > CALUM BENSON, Usability Engineer       Sun Microsystems Ireland
> > mailto:calum benson ireland sun com    Desktop Engineering Group
> > http://www.sun.ie                      +353 1 819 9771
> > 
> > Any opinions are personal and not necessarily those of Sun Microsystems
> > 
> > _______________________________________________
> > gtk-devel-list mailing list
> > gtk-devel-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-devel-list
> 
> 
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-devel-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]