Open Bug 101689 Opened 24 years ago Updated 3 years ago

Request keyboard shortcuts like numbered links

Categories

(Core :: DOM: UI Events & Focus Handling, enhancement, P4)

All
Other
enhancement

Tracking

()

Future

People

(Reporter: bugs, Unassigned)

References

Details

(Keywords: helpwanted)

Attachments

(1 file)

Hi, I would like mozilla to be easily useable without a mouse. Right now it is very hard to select links using a keyboard. One way to make this easy would be to display little captions with numbers on them on all the links when the user presses a key like "Alt". Then the user can select the link by pressing the numbers and releasing alt. So alt-72 would select the 72nd link on the page. I'm sure this is already in here but I'm not a mozilla programmer and bugzilla system is very complicated.
Assignee: asa → aaronl
Component: Browser-General → Keyboard Navigation
QA Contact: doronr → sairuh
-> Keyboard navigation
Links can be navigated using the Tab key, for instance. In addition, web authors can use the ACCESSKEY attribute to links and form-buttons to assign hotkeys, just as you describe: http://www.idocs.com/tags/linking/_A_ACCESSKEY.html (that link mistakenly mentions that IE doesn't support ACCESSKEY, whereas it actually does) -> WONTFIX / INVALID? Also, please include your Build ID in all bug reports. Or, if you file bugs with the Bugzilla Helper, your Build ID is automagically added for you: http://www.mozilla.org/quality/help/bugzilla-helper.html
Thanks for your comments, but they don't really make Mozilla usable without a mouse. The tab key is not convenient at all - if there are 50 links on a page the Tab key must be pressed 50 times worst case (O(n) relationship) but with a number scheme it would only take 3 keystrokes to press Alt-50 (O(log n) - a huge improvement). About ACCESSKEY, that is good to know, but my goal is to browse the web without a mouse, not to write webpages. Or are you suggesting that it isn't mozilla's responsibility and it should be handled through some sort of web proxy that adds ACCESSKEY to everything? Interesting idea, but how would the user know which shortcut key goes with which link? A mouse isn't the best solution for everyone - some people have medical conditions like RSS that make it painful or impossible to use the mouse, some are on laptops where the mouse isn't very ergonomic, and some just don't like mice.
As common user I could agree with opinion presented by Ben Escoto, accessing concrete link by shortcut could be useful also for users with mouse. So I'm voting for marking NEW untargetted. Alt+# (on numeric keyboard) in on PC reserved for pasting special chars (any char of charset), so another key combination (Ctrl+#) should drive this feature. There are also several problems with rendering numbers inside webpage (images of any size should be hyperlink).
Would any of the proposed solutions in these bugs be satisfactory to the reporter? bug 67684 bug 58852 bug 66587
Adding to aaron's list of possible solutions: bug 66597 after using search>find, tab should go to the link containing the start of the selection or the first link after the start of the selection.
Firstly, let me say that I am quite impressed with the response I've gotten so far. At first I thought that I was wasting my time trying to figure out bugzilla, but I see that I was quite wrong. Ok, Aaron Leventhal has listed some bugs which proposal ways of making Mozilla usable without a mouse. Perhaps some of these are easier from the programmer's perspective, but I can't comment since I am only a Mozilla user. However, I do think that my proposal is better for the end user than the others I've seen as far as making Mozilla easy to use without a mouse. Let's take two of the suggestions: 1. Allow a link to be selected using the arrow keys. E.g. if a link is currently selected and the down arrow key is pressed, the link below it on the screen would become selected. I think this would be inconvenient because it would require many many keypresses to select an average link. For instance, if the links are in a line, or basically in a line (as they often are), this would be no better than using Tab. However, it may be doing anyway, as may be more intuitive initially to the user. Still, I don't see how something like this alone could make Mozilla easy to use without a mouse. 2. Emacs-style searching, where a user could press Cntl-S, and type in the first few letters of the link in question. The first link starting with those letters would be highlighted. This would be better than 1 I think, and, being an emacs user, I had considered suggesting this, but this method would not allow picture elements, text fields, buttons, etc, to be selected easily. It would also require more keystrokes than my proposal. BTW, I did not come up with this proposal - lynx has had numbered links for a long time. I am just calling it "my proposal" because in this bug report I first mention it. One advantage that my proposal has over every other possible one is that when there are n links, it only takes 1+log n keystrokes to select any element. The log's base is the number of digits allowed for numbering. If numbers and letters are used, the base would be 36, so any of 1296 links could be selected in only 3 keystrokes. I believe this would make navigating the internet by keyboard _easier_ than by mouse. I don't think this would be the case with the other proposals. Of course, it is possible that I have not read enough about the other proposals or missed some bug report entirely (for instance, I would have thought someone would have suggested numbered links already). If so, my apologies.
I would like Mozilla to behave like lynx in this regard. Just punch the number and <enter>. One can then navigate solely with pgup, pgdn and the number pad. Tabbing is inefficient on pages such as slashdot. To get something in the middle column you must tab all the way down the left side. Also the number of links present a problem. This bugzilla page for instance has over 90 links. Numbered links and forms solves these problems.
I suppose there should be different options. My keyboard doesn't have a number pad, and generally laptops don't either. Also, if there is no key required to indicate the start of keyboard navigation, then all the little numbers by the selectable items would have to be there from the beginning. That would probably annoy the people who only use the mouse so it should be an option, but it could be the easiest way, if the numbers were not too intrusive. BTW, there hasn't been much activity here recently. I am unfamiliar with the usual procedure - does this mean that the developers are considering it and are waiting to see if enough people want it?
I would love to implement better keyboard methods for selecting links. I'm not 110% certain that this is the best option, but I'm not opposed to it either. Marking FUTURE, at least until I can think about this some more. I'm working on higher priority items. Other Mozilla developers are welcome to tackle this.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P4
Target Milestone: --- → Future
Status: NEW → ASSIGNED
As we approach the release of 1.0 may I ask if any new thought has been given to this issue? I have grown more and more anti-mouse (ion WM, emacs etc.) and would love to see lynx like numbering. Were that zippy Gecko engine combined with a rapid link selection mechanism browsing with Moz would be a joy.
I would love a feature like this. I don't know enough about the Mozilla code base to architect this feature but I can definitely help with testing and bug fixing. I think having readable letter/number hotkeys on every link on a given page would be somewhat unreadable--or at least ugly. It may be better to have some kind of quick navigation mode that you toggle into, then use the short keys to navigate, then toggle out of that mode to view the web page.
I imagine that from a readability and layout standpoint, that the numbering (or whatever) should "pop-up" in an alt tags like way when you press the appropriate key.
This is exactly what I have been wanting to see in Mozilla! (Thanks, Aaron, for pointing me to this request.) I want to be able to browse the Web just using voice recognition software. To have the mode were links are numbered would by far be the best way to accomplish this task. Numbers are very accurately recognized, and there's no question about which of 10 page links titled "click here" that you want to follow. The numbers should show up next to each link, including linked graphics. This may not look that great, but we're talking about a serious accessibility issue here. It's more important that people relying on voice recognition be able to use the Web then that this look pretty. Some key sequence like "ALT-somekey LINK_NUMBER RETURN" would work great for a voice macro. I have an overuse syndrome and browsing the Web is the one thing that I still have problems with, as it basically requires using a mouse. Because there are more and more people in my situation, I think that this should be viewed as an accessibility issue and given higher development priority. Anyway, this is my two cents.
To me, this seems like it might be best implemented by the voice control software. Both Mozilla and IE implement MSAA (Microsoft Active Accessibility) to expose content and links in a document. This means the voice dictation software would only need to code this once for all browsers that support MSAA. All they need to do is use MSAA to find the links and their screen positions, etc. Then they can draw the numbers next to the links. When the user asks for "Link 33" it can use MSAA to activate the link. Everything they need is in MSAA. This has only been requested for use with voice dictation, so doesn't it make sense for it to be done on that end?
I just realized thst the bookmarklet approach might be good here. Jesse, you want to take a look at inserting a number in at the beginning of each link's text? Then typing the number and pressing Enter would do what people are asking for.
actually a user style sheet would be ideal, unfortunately we don't appear to support counters. the theory goes something like: a[href]:before{ content: counter(link) ". " ; counter-increment: link } this example stolen from http://www.w3.org/TR/WCAG10-CSS-TECHS/#Generated as for responsibility for implementing, I enable numbered links (actually number links+form fields) whenever i use lynx. and now that mozilla has typeahead, I'd be quite likely to use it with this feature. As for getting counters working, i'm sure somewhere out there is the bug. (Or perhaps I messed up on the code)
I don't even know if our find service can find :before or :after text, so I don't know if that would work. I was thinking more of actually inserting the numbers as text via the DOM.
*** Bug 167416 has been marked as a duplicate of this bug. ***
see also bug 30088 (incremental search) I know it's something completely different, but they have a 'linksonly mode', where you press ' (quote) and the first few characters of the link. When a match is found, the link is automatically selected without pressing enter. And it will be found in Mozilla1.2a, which should be released one of these days.
Regarding comment No. 15: I'm using Linux, so it doesn't sound like a Microsoft API is gonna work (?). I'm hoping I don't have to go over to the dark side just to browse the Web by voice ... :) Also, the original request was to browse without using a mouse, not necessarily voice recognition.
Starting on Saturday, you can browse without a mouse by typing in letters from the name of a link. See http://www.mozilla.org/projects/ui/accessibility/typeaheadfind.html I should have mentioned, on UNIX/Linux the API is called ATK (Accessibility Tool Kit), which is being finished up by Sun. I imagine that someone will use the ATK in their voice recognition software.
This feature is great. It allows me to browse the Web mostly by voice. I can see some ways to improve it however: 1. Could non-text links be searched as well? Namely alt text on linked images or titles on image submit buttons. These still require mouse use, or lots of tabbing. 2. On Web pages with multiple links that have the same text, could there be some key to step through all the matching links? Not as important as (1).
All things being equal i think that type-ahead find, in the event you don't browse by voice covers the keyboard nav. issue. I think that it would be nice if you could hop to form elements and images - although the only sensible way of doing that, that i can tell, would be to number them. It'd be nice if you could toggle 'numbered mode' into: - number links - number form elemnts - number images FWIW.
Rob, Request #1 = bug 158757 Request #2 = F3 or Ctrl+G (Cmd+G on Mac). Add the shift key to go backwards. As far as voice navigation, I really like what Dragon Naturally speaking does with IE. You say the name of the link, and it numbers all of the matches. You can say "this one" to take the default link, or a number to choose a different one. I belive it does something similar for form controls. For example, you can say "text box" and it will number them.
Not that this is a real solution for this bug, but just for fun. Paste the following "bookmarklet" into your URL bar and hit Enter. javascript:for (lnk=0; lnk<document.links.length; lnk++) document.links[lnk].firstChild.data = (lnk+1) + ". " + document.links[lnk].firstChild.data; void 0 Then use typeaheadfind to find the links by typing in the number.
Aaron, That for loop is seriously cool. If you could get that turned on for every page us keyboard guys would be another step closer to pure bliss.
Wouldn't it be cool if we could specify a script to be run on every new page that's loadde?
> Wouldn't it be cool if we could specify a script to be run on every new page > that's loadde? Aaron, This XPI (by the same author as the Tabbrowser Extensions) has the ability to run a custom script on page load. (I haven't tried that particular feature, but it's in the docs...) http://www.cc-net.or.jp/~piro/xul/_extensions.en.html
User javascript on page load is bug 89016.
Keywords: helpwanted
Lotus Notes v5 uses a very similar solution for toolbars - press Alt and buttons are marked with numbers/letters. Prog.
Mass un-assigning bugs assigned to Aaron.
Assignee: aaronleventhal → nobody
QA Contact: bugzilla → keyboard.navigation
This is a mass change. Every comment has "assigned-to-new" in it. I didn't look through the bugs, so I'm sorry if I change a bug which shouldn't be changed. But I guess these bugs are just bugs that were once assigned and people forgot to change the Status back when unassigning.
Status: ASSIGNED → NEW
Component: Keyboard: Navigation → User events and focus handling
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: