* looking for arch@arch.thinkmo.de--2003-archives/moin--main--1.3--patch-665 to compare with
* comparing to arch@arch.thinkmo.de--2003-archives/moin--main--1.3--patch-665
M  MoinMoin/theme/__init__.py

* modified files

--- orig/MoinMoin/theme/__init__.py
+++ mod/MoinMoin/theme/__init__.py
@@ -185,7 +185,10 @@
         if request.user.valid:
             homepage = Page(request, request.user.name)
             title = homepage.split_title(request)
-            homelink = homepage.link_to(request, text=title)
+            accesskey = _("H")
+            tip = _("Visit your home page (%s)") % accesskey
+            attrs = 'accesskey="%s" title="%s"' % (accesskey, tip)
+            homelink = homepage.link_to(request, text=title, attrs=attrs)
             userlinks.append(homelink)
         
             # Set pref page to localized Preferences page
@@ -204,7 +207,7 @@
     linkSchemas = [r'http://', r'https://', r'ftp://', 'mailto:'] + \
                   [x + ':' for x in config.url_schemas]
 
-    def splitNavilink(self, text, localize=1):
+    def splitNavilink(self, text, localize=1, accesskey=''):
         """ Split navibar links into pagename, link to page
 
         Admin or user might want to use shorter navibar items by using
@@ -213,11 +216,14 @@
         the localized version of page.
 
         @param text: the text used in config or user preferences
+        @param localized: link should be localized
+        @param accesskey: link will use specified accesskey
         @rtype: tuple
         @return: pagename or url, link to page or url
         """
         request = self.request
-        
+        _ = request.getText
+                
         # Handle [pagename title] or [url title] formats
         if text.startswith('[') and text.endswith(']'):
             try:
@@ -232,7 +238,11 @@
             for scheme in self.linkSchemas:
                 if pagename.startswith(scheme):
                     title = wikiutil.escape(title)
-                    link = '<a href="%s">%s</a>' % (pagename, title)
+                    tip = _("Visit %s at %s") % (title, pagename)
+                    if accesskey:
+                        tip += ' (%s)' % accesskey
+                    link = '<a href="%s" accesskey="%s" title="%s">%s</a>' % (
+                        pagename, accesskey, tip, title)
                     break
 
             # Handle [pagename title] format
@@ -242,7 +252,11 @@
                 # [name_with_spaces label] we must save the underscores
                 # until this point.
                 pagename = request.normalizePagename(pagename)
-                link = Page(request, pagename).link_to(request, title)
+                tip = _("Visit %s") % pagename
+                if accesskey:
+                    tip += ' (%s)' % accesskey
+                attrs = 'accesskey="%s" title="%s"' % (accesskey, tip)
+                link = Page(request, pagename).link_to(request, title, attrs=attrs)
 
         # Handle regular pagename like "FrontPage"
         else:
@@ -254,8 +268,11 @@
             pagename = page.page_name
             title = page.split_title(request)
             title = self.shortenPagename(title)
-            link = page.link_to(request, title)
-
+            tip = _("Visit %s") % pagename
+            if accesskey:
+                tip += ' (%s)' % accesskey
+            attrs = 'accesskey="%s" title="%s"' % (accesskey, tip)
+            link = page.link_to(request, title, attrs=attrs)
         return pagename, link
 
     def shortenPagename(self, name):
@@ -296,9 +313,16 @@
         current = d['page_name']
 
         # Process config navi_bar
+        # Items 0-9 will have access keys
         if request.cfg.navi_bar:
+            i = 0
             for text in request.cfg.navi_bar:
-                pagename, link = self.splitNavilink(text)
+                if i <= 9:
+                    accesskey = str(i)
+                    i += 1
+                else:
+                    accesskey = ''
+                pagename, link = self.splitNavilink(text, accesskey=accesskey)
                 cls = 'wikilink'
                 if pagename == current:
                     cls = 'wikilink current'
@@ -555,11 +579,14 @@
         """
         _ = self.request.getText
         form = self.request.form
+        accesskey = _('F')
         updates = {
             'search_label' : _('Search:'),
             'search_value': wikiutil.escape(form.get('value', [''])[0], 1),
             'search_full_label' : _('Text', formatted=False),
             'search_title_label' : _('Titles', formatted=False),
+            'search_accesskey': accesskey,
+            'search_title': _("Search titles or text in this wiki (%s)") % accesskey,
             }
         d.update(updates)
 
@@ -570,6 +597,7 @@
 <input type="hidden" name="context" value="180">
 <label for="searchinput">%(search_label)s</label>
 <input id="searchinput" type="text" name="value" value="%(search_value)s" size="20"
+    accesskey="%(search_accesskey)s" title="%(search_title)s"
     onfocus="searchFocus(this)" onblur="searchBlur(this)"
     onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
 <input id="titlesearch" name="titlesearch" type="submit"
@@ -969,14 +997,25 @@
         
         # Page actions
         if page.isWritable() and request.user.may.write(page.page_name):
-            add(link(request, quotedname + '?action=edit', _('Edit')))
+            accesskey = _('E')
+            title = _("Edit this page (%s)") % accesskey
+            add(link(request, quotedname + '?action=edit', _('Edit'),
+                     attrs='accesskey="%s" title="%s"' % (accesskey, title)))
         else:
             add(_('Immutable Page', formatted=False))              
-        
+
+        accesskey = _('D')
+        title = _("Show differences from last revision (%s)") % accesskey
         add(link(request, quotedname + '?action=diff',
-                 _('Show Changes', formatted=False)))
+                 _('Show Changes', formatted=False),
+                 attrs='accesskey="%s" title="%s"' % (accesskey, title)))
+
+        accesskey = _('I')
+        title = _("Show page information (%s)") % accesskey       
         add(link(request, quotedname + '?action=info',
-                 _('Get Info', formatted=False)))
+                 _('Get Info', formatted=False),
+                 attrs='accesskey="%s" title="%s"' % (accesskey, title)))
+        
         add(self.subscribeLink(page))
         add(self.actionsMenu(page))
         



