Closed Bug 294639 Opened 20 years ago Closed 6 years ago

Bookmarks should have dynamically generated underlined access keys

Categories

(Firefox :: Bookmarks & History, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED INACTIVE

People

(Reporter: savino.lovergine, Unassigned)

References

Details

(Keywords: access)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4

When opening the bookmarks, a list of access keys should be dynamically
generated (whenever it is possible) and the choosen letters should be
underlined. Same thing applies for all the folders and sub-folders of the bookmarks.

It will help a lot keyboard navigation and accessibility.


How bookmarks look like now:
+-----------------------------------+
!  _B_ookmark This Page...  Ctrl+D  !
!  _M_anage Bookmarks...            !
+-----------------------------------+
!  Bookmarks Toolbar Folder      >  !
!  Mozilla Project               >  !
!  DVD                           >  !
!  AntiVirus                     >  !
!  Others                        >  !
!  Infos RSS                     >  !
!  Google                           !
!  Bugzilla                         !
+-----------------------------------+

How they will look after:
+-----------------------------------+
!  _B_ookmark This Page...  Ctrl+D  !
!  _M_anage Bookmarks...            !
+-----------------------------------+
!  B_o_okmarks Toolbar Folder    >  !
!  Mo_z_illa Project             >  !
!  _D_VD                         >  !
!  _A_ntiVirus                   >  !
!  O_t_hers                      >  !
!  _I_nfos RSS                   >  !
!  _G_oogle                         !
!  B_u_gzilla                       !
+-----------------------------------+


It does not seem very difficult to program:
- For each line of the bookmark, try the first letter of its name; if the first
letter is already used, try the second letter; if the second letter, etc...; if
no letter is possible for this line, then no letter at all will be underlined
- More intelligent algorithms can also work (but a stupid one is already a good
first step; this can be enhanced later). Let's say you have three bookmarks in a
subfolder: "Dakota", "Virginia" and "DVD". A stupid algorithm will produce
"_D_akota", "_V_irginia" and "DVD" (not underlined). An intelligent (two-pass)
algorithm will produce "D_a_kota", "_V_irginia" and "_D_VD".
- The code won't eat too much power (even if a folder is very big and has many
bookmarks inside). Even a more complex algorithm won't be too costy.
- The code must just avoid to use the two letters already used for "_b_ookmark
this page" and "_m_anage bookmarks" in the root of the bookmarks menu. Warning:
translations may use two different letters (it must be taken into account).

Thanks.

Reproducible: Always



Expected Results:  
Bookmarks should have dynamically generated underlined access letters
There are cases when this might prove to be problematic. How about a case when
you have various bookmarks with the same letters? Let's say I have these 3:
DVD
DVD
DVD
It's a dumb example, but it's possible. Maybe the favicons on the three are
enough for me to distinguish them.
It's also possible to create bookmarks with no name, or having only characters
that do not correspond to valid single key strokes, such as ссссс.
There's also Live Bookmarks to consider. Obtaining the Bookmarks sometimes takes
a while. Additionally applying this algorithm to a long list may add some
serious wait that users won't like.
If the UnderlineBookmarkNewFunction can't underline a bookmark, then it won't
underline it. That's not a problem. Right now, zero bookmark are underlined. The
UnderlineBookmarkNewFunction won't be able to underline 100% of the bookmarks in
every case, but it will try to do it the more it can, so it will be better. The
more bookmarks are underlined, the better it is; but we know that 100% will be
impossible; but even a small fraction is already a good step toward keyboard
accessibility.

Simple case: you have 60 bookmarks in a subfolder, but there's only 26 letters
in the alphabet and 10 numbers. So, we're sure that half of the bookmarks of
this subfolder won't be underlined. But that's not a problem (right now, zero
bookmark are underlined). The aim of the UnderlineBookmarkNewFunction is to add
the more underlines it can; the non-underlined bookmarks are still accessible
(with arrow keys) (just like now) and the underlined bookmarks are blazing-fast
accessible (with the letter key). It's already a nice gain. It's not perfect,
but it can't be perfect.

An end user is smart enough to sort and organize his bookmarks a little. I don't
know users having 500 bookmarks in a same subfolder (FireFox can't handle them
very well; it's painful). Some bookmarks may have non-standard names or dumb
names, some of them may be badly sorted and foldered. Then the
UnderlineBookmarkNewFunction will push the user to think about it and to clean
up things to make them better. He will use better names, he will put his
favorite bookmarks at the top of the subfolder, he will put the least used at
the bottom of the subfolder, he will split a too big subfolder into smaller
subfolders, etc, etc. So he can enjoy the UnderlineBookmarkNewFunction.

LiveBookmarks are not a real problem. The UnderlineBookmarkNewFunction can be
applied at display time only. The LiveBookmarks are not loaded ? The
UnderlineBookmarkNewFunction is not computed. The LiveBookmarks are loaded ?
Then UnderlineBookmarkNewFunction can be applied. The
UnderlineBookmarkNewFunction can also be applied only to static bookmarks and
never to LiveBookmarks, so it's easy to avoid the problem.

Applying UnderlineBookmarkNewFunction to a long list won't be long. The basic
algorithm can be a simple loop with a simple small array (to flag each used
letters). A subfolder with 200 bookmarks will loop 200 items. And there are a
lot of ways to optimize it (ie: when the array is full (all of the letters are
flagged as used) you can exit the loop; etc). I'm sure there are already a lot
of optimized stock algorithms available to solve this kind of algorithmic problem.

I think we should give a try...


Thanks.
Something intelligent would be to target caps. Let's say you have a bookmark
called "John's Foobar Great Home Page". For this bookmark, the best choice would
be its first letter ("J"), then the caps ("F", "G", "H" or "P"), then the other
letters.
The algorithm should always prefer the first letter, then the caps, then the
other letters.
Do you think it is possible to create this function as an extension ?
I don't know if it is possible. I don't know where to begin to search.

Thanks.
Couldn't find duplicates, confirming. I don't think that this (setting
second/third letters as accesskeys automatically) will improve usability,
because changes to bookmarks can result in constantly changing accesskeys.
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows XP → All
Hardware: PC → All
Summary: Bookmarks should have dynamically generated underlined access letters → Bookmarks should have dynamically generated underlined access keys
Version: unspecified → Trunk
The aim of this enhancement is to provide a better keyboard accessibility for
bookmarks. Not a perfect one, just a better one. Right now, the keyboard
accessibility of bookmarks is just bad; we can do a little better. The solution
will never be perfect (it can't), but it will be far better.


	Now, we can't use the keyboard for a fast bookmarks access because:

- Some letters can't be used at all.
  - If I press "alt+B" to open the bookmarks and then I press "B" to launch my
"bugzilla" bookmark, it will trigger "bookmark this page". I can't access my
"bugzilla" bookmark with only one key press. The only way to have a fast access
to my "bugzilla" bookmark is to move it in a subfolder (two keys access, then),
or change its name (let's say "ZillaBug", to trigger it with the Z key). Same
thing applies to "Bookmarks Toolbar Folder". I use them very often but can't
have a fast keyboard access to them !
  - I can't have a "mozilla" folder in my bookmarks, because pressing "alt+B"
then "M" won't open this "mozilla" folder but will trigger "manage bookmarks".
If I want a fast access to my favorite "mozilla" folder, I must change its name
(let's say "ZillaMo", to trigger it with the Z key) (Oh, hell, I already have a
"ZillaBug" bookmark (twice the Z key !). Gotcha).
  - I can't have a bookmark with a name beginning by "o" in any folder or
subfolder, because pressing the "o" key will trigger "open in tabs" first and
not my "o..." bookmark.

- My poor brain must "compute" the access letter of each bookmark each time I
open my bookmarks ("what key must I press to trigger that 'foobar' bookmark ?
Must I press 'F' ? Is there another 'f...' bookmark in the same folder ? Is the
'F' key a forbidden key ?"). Pressing only one key to trigger a bookmark is
faster than selecting it with the arrows keys or with the mouse, but I must look
and search the good letter each time I open my bookmarks (so it's not faster).
The computer and the software can easily compute that; my brain don't want to.
  I can't learn by heart all the letters combinaisons for each of my bookmarks
(this one is "alt+B then U then D", the other one is "alt+B then A then C then
K"). And each time I add new bookmark entries, the letters can change (or don't
change; you never know), and I must search and learn again and again.
  That's even worse with RSS bookmarks (I can't learn then: they are always
different). You can't have a fast and reliable access to them. That's a
nightmare. So you must use the arrow keys, and that's slow, and that's bad.


	Underlining is the key to solve the problem ! You don't have to search, you
don't have to think, you don't have to choose, you don't have to change
anything, you don't have to learn: each bookmark will have an access letter
(FireFox itself will dynamically choose the letter the best way it can), and
this letter will be underlined (it will be clear and visible on the screen).
That's fast (just one key to trigger) and that's easy (letters are underlined;
just look and type). No brain-ache, no time loss. Just press "alt+B" then follow
your way into the bookmarks.


	I know that the solution won't be perfect: some bookmarks won't have any letter
at all (when there are too much bookmarks in the same folder, some won't get any
letter). Well organized bookmarks can avoid this (just split the bookmarks into
folders). But the bookmarks-without-letter are just as accessible as now (that's
not a regression). And the bookmarks-with-letter are just better than now
(that's an enhancement).


	This enhancement will help a lot of people:
- People using only the keyboard because they can't physically use a mouse
(handicap).
- People using alternative input methods (speech recognition, keyboard
emulators, etc).
- People using only the keyboard because it's often faster than the mouse (old
geeks).
- People using only the keyboard because they just don't have a mouse (laptop
computers, or broken mouse).
- People using only the keyboard because they use FireFox at the office during
the worktime (their boss will catch them if they use only the mouse during hours).

	Thanks.
Keywords: access, helpwanted
Let's say I'm using a speech recognition software that emulates the keyboard.
I'm talking to my computer. I want to open my "bugzilla" bookmark in the
"mozilla" folder in my bookmarks.

	Right now:
- I say "bookmarks"; it sends "alt+b"; the bookmarks open.
- I say "down, down, down,..." until the "mozilla" folder is selected.
- I say "right" to open the "mozilla" folder.
- I say "down, down, down,..." until the "bugzilla" bookmark is selected.
- I say "enter" to launch the selected bookmark.

	With the "underline enhancement", I will be able to:
- I say "bookmarks"; it sends "alt+b"; the bookmarks open. The access letters
are underlined. I can follow my way.
- The "mozilla" folder has its "z" underlined. I say "z". The folder is selected
and open.
- The "bugzilla" bookmark has its "u" underlined. I say "u". The bookmark is
selected and launched.

	That's a great gain.

	Thanks.
What you ask should already be possible, although without explicit accesskeys being shown: you can hit the first letter of a bookmark to have it selected (if several bookmarks start with the same letter, the bookmark is just focused and repeatedly pressing the same key will circle through the bookmarks).

This just doesn't work for those letters where an accesskey is already present in the few items above. But instead of adding accesskeys to the individual bookmarks, I'd much rather remove them from those items (Bookmark This Page..., Manage Bookmarks, etc.). This would at least make sure that all bookmarks are equally accessible.
This may be useful in other places as well, for example in folder links in the Bookmarks Toolbar.

I'm starting to work on this.  I'm planning to create an extension or some generic piece of code to select the access keys, and then call it from wherever necessary.

I hope this can get fixed in the Firefox 3 timeline.
Assignee: nobody → ehsan.akhgari
Target Milestone: --- → Firefox 3
Blocks: firekey
Status: NEW → ASSIGNED
Keywords: helpwanted
Target Milestone: Firefox 3 → ---
Updating to reality: I won't have the time to work on this for the foreseeable future!
Assignee: ehsan.akhgari → nobody
Status: ASSIGNED → NEW
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.