Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^4: Better keyboard-driven navigation, any? (possible)

by shmem (Chancellor)
on Jul 25, 2008 at 00:08 UTC ( [id://700005]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Better keyboard-driven navigation, any? (thanks)
in thread Better keyboard-driven navigation, any?

"Vote ++"? Most places at PerlMonks present more than one node to vote on so a "Vote ++" navigation doesn't make much sense to me.

That's the key. Why not? if you are reading a specific reply, you know which vote checkbox to press with the mouse to mark a vote, and you don't get confused by the other voting tokens on the page. Mouse navigation allows you to select the appropriate items directly according to the visual context.

Key driven navigation is not so difficult. You can have a keystroke for voing (++, 0, --), but a previous keystroke has to establish the context for it, and that keystroke should scroll the context into view. Not that difficult with javascript.

Browsers do have (customizable) keystrokes for elements, but "they" don't "know" about the layout of a page and about the contexts therein. So, links are stuffed into a single flat list which can be navigated via <Tab> - not a suitable navigation scheme, if you are way down a page reading replies and have to issue oodles of <Tab> strokes to finally get at the checkbox you want to address. There's no way I know of to select items which are not links.

Luckily, PerlMonks pages are organized in a pretty consistent way, so it is easy to define contexts to which to navigate, and with javascript recording the current context, navigation inside that context is easy also. Which brings me back to your question further up:

What is "next post"?

Well, that depends on context ;) PerlMonks pages are divided into a header (links to sections a.k.a monkbar, introductory words to a page or the OP in a thread), a collection of items (links to nodes contained in sections, or actually posts a.k.a. replies to the OP in the header) and nodelets. Inside the collection of items is the "next post", which is a thing that is already on display but not selectable via a link (the "next post" in Newest Nodes would be the next section); and inside that "post" there may be a link collection which can be navigated with default browser keys.

I think you get the idea... I've started to implement key navigation, and currently I'm looking at PM in terms of establishing contexts, sub-contexts and navigation. Viewing things that way might also reveal opportunities to unify and simplify things.

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
  • Comment on Re^4: Better keyboard-driven navigation, any? (possible)

Replies are listed 'Best First'.
Re^5: Better keyboard-driven navigation, any? (possible)
by tye (Sage) on Jul 25, 2008 at 04:57 UTC

    The node I replied to was about HTML accesskeys. What you are doing seems quite unrelated to that. Note that I said:

    " Perhaps you are thinking of scrolling within a thread, but I don't think access keys can be used that way (without doing a lot of JavaScript...). "

    You seem to be doing a lot of javascript, no? And you don't seem to be using HTML accesskeys at all.

    but a previous keystroke has to establish the context for it, and that keystroke should scroll the context into view

    And does scrolling the content change the context? Is there a visual indicator of what the current context is? You might want to consider those points if you haven't. These are some of the issues that crossed my mind such that I decided to not further discuss the idea beyond my brief mention.

    I'm glad you appear to have made something that is useful to blazar. Personally, I scroll a thread when I'm done reading/scanning what currently is displayed not in increments of nodes. But I appreciate the potential improvement for others.

    - tye        

      The node I replied to was about HTML accesskeys. What you are doing seems quite unrelated to that.

      The node you replied to was about FF3 and HTML accesskeys, but you wrote about navigation, which the node you replied to did not even mention. You were replying to that node and the OP, which is what I did, too. And to the entire thread. The part of your reply I referenced was not about HTML accesskeys.

      I didn't use HTML accesskeys in the first place because I didn't know about them. After reading a bit, I think they provide no advantage over a plain JS solution since they are not context-aware. Perhaps Opera provides for that, I don't know. And they rely on modifiers, which isn't necessary.

      Scrolling the context changes the context cursor which is currently not visible, so yes, highlighting is necessary.

      --shmem

      _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                    /\_¯/(q    /
      ----------------------------  \__(m.====·.(_("always off the crowd"))."·
      ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://700005]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-19 21:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found