Ticket #71 (closed enhancement: fixed)

Opened 2 years ago

Last modified 14 months ago

Nonlink Text Quick Navigation Key

Reported by: Iris Owned by: jteh
Priority: minor Milestone:
Component: Virtual buffers Version: development
Keywords: Cc:
Operating system: Blocked by:
Blocking:

Description

Many screenreaders often have a navigation key that allows users to navigate to a nonlink block of text on a webpage. This would be convenient if there are a number of links prior to what the user would like to read.

Change History

Changed 2 years ago by jteh

  • version set to trunk

Changed 2 years ago by jteh

  • milestone 0.6 deleted

This request is not as trivial as it might seem.

The most efficient way to navigate quickly is to find a node (element) of a given type; e.g. quick navigation for form fields, links, etc. We could move to the next node which isn't a link, but in a navigation bar, this could well be a list item which contains a link. This is obviously not what is desired. This means that we must resort to scanning the text of the buffer, which is not simple due to the complex nature of most documents. Also note that searching for the next piece of text which isn't contained within a link is not always very accurate; e.g. navigation bars containing unlinked items or headings.

There are more efficient, accurate ways of quickly navigating a page. For example:

  • Using ctrl+downArrow will skip to the next block element.
  • Some pages have links at the top which allow you to skip to the main page content.
  • Many pages have headings at the start of the main content. Pressing h will jump to the next heading.

If anyone can come up with an algorithm (or even better, some code) to do this, we will definitely consider implementing it. However, at this stage, I don't believe this should block 0.6.

Changed 2 years ago by Iris

Yes, that makes sense. I can see definitely how this would be hard to implement at the current time.
Sorry, I didn't see your response to this ticket and wasn't aware that this would be that hard to implement.

Changed 14 months ago by jteh

  • owner set to jteh
  • status changed from new to accepted

I had a brainwave as to how this might be done. I'll see how I go with it.

Changed 14 months ago by jteh

  • status changed from accepted to closed
  • resolution set to fixed

More than 5 hours, several attempts and a sore brain later, this is now implemented in r3037. In the end, it all boiled down to a rather elegant 18 lines of code, including comments. <gasp>

Note: See TracTickets for help on using tickets.