Thursday, March 28, 2013

Navigating Specialized Content In ChromeVox (R26)

Navigating Specialized Content In ChromeVox (R26)

1 Navigating Specialized Content In ChromeVox (R26)

1.1 Introduction

ChromeVox provides numerous ways of efficiently navigating Web content with a view to easily obtaining multiple views based on the task at hand. ChromeVox 26 enables the efficient navigation of specialized content such as tables and mathematical markup (MathML) — the goal is to create a flexible design that allows us to add more types of specialized content in the future. Here is a brief explanation of the design rationale underlying this new functionality. Note that we are continuing to refine this usage model, and all constructive feedback is welcome via the Axs-Chrome-Discuss Google Group.

1.2 A Brief Recap Of Content Navigation

As a precursor to explaining how we navigate special content such as tables and MathML, let's first recap the way we currently navigate ordinary content. The notion of granularity is a basic underlying concept that is central to ChromeVox. As one reads through any content, we naturally group things into chunks. In the user interface, we call these characters, words, lines, objects and groups — this hierarchy is motivated by common usage in everyday language.

When it comes to special content, the associated groupings become more interesting. Tables, for example, have row and column cells. However, one can still view them through the lens and vocabulary of everyday language (character, words, and lines). ChromeVox now allows users to apply either lens to tables; this means that you can now view a table as being made up of lines, words and characters, or alternatively, as being made up of rows, columns and cells. More interestingly, you can easily switch among these two views.

1.2.1 Illustrative Example

Here is a small table that contains a sample class schedule. In practice, you may either want to read this information as a sequence of lines, or alternatively, browse using the underlying tabular structure.

Notice that as you navigate this document, you hear ChromeVox announce the table upon first encountering it; however, ChromeVox navigation continues to treat it as a series of lines, words and characters. For a quick reading of the class schedule this is adequate in this case.

TimeClassLocation
11:00 - 11:45Calculus 101100
12:00 - 12:45Physics 101200
13:30 - 14:15Chemistry 101300

Next, let's move back to the above table and browse it using the underlying tabular structure — for instance, you may wish to do this with a larger class schedule when quickly looking for a specific class.

Using your present ChromeVox granularity move back to the table – hint: using granularity group will get you there the fastest. When you hear ChromeVox announce the table, switch to to table navigation by pressing CVOX+\ (ChromeVox BackSlash). Table navigation provides two granularities — row and column, and the default is row granularity. So now, ChromeVox navigation moves by rows, and the current cell is announced as you traverse the table. You can switch between row and column granularity using the same keys that you would normally use to switch between line, word and character granularities. You can exit table navigation by pressing CVOX+Backspace (ChromeVox Backspace).

1.2.2 Other Specialized Content

As we enhance our support for other types of specialized content, e.g., MathML, you will be able to use command CVOX+\ (ChromeVox Backslash) to enter math navigation mode.

1.3 Conclusion

In summary, our design goals for ChromeVox's navigation model are as follows:

  1. Easily navigate through different types of content with a common set of keyboard commands.
  2. Enable context-specific navigation of specialized content without the need to learn additional special keys.
  3. Enable the user to view the same piece of content via different lenses to obtain multiple views of the same content.

We welcome feedback about this navigation design or other comments at our axs-chrome-discuss Google group.

– David Tseng and the ChromeVox team.

Date: 2013-03-27 Wed

Author: T.V Raman

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0

1 comment:

  1. hello sir
    i think chromevox is sometimes bulky and hard to use when there are double keystrokes.
    So why don't u put single keystrokes. also navigation by line , sentence is sometimes inaccurate while using chromeVox as it sometimes doesn't read the end parts of the sentence. so why don't u try using window.getSelection() object.
    function speakNextSentence()
    {
    var sel=window.getSelection();
    sel.modify("move","forward","character");
    sel.modify("extend","forward","sentence");
    window.speechSynthesis.speak(new SpeechSynthesisUtterance(window.getSelection()));
    }
    and similiarly
    function speakPrevSentence()
    {
    var sel=window.getSelection();
    sel.modify("move","backward","character");
    sel.modify("extend","backward","sentence");
    window.speechSynthesis.speak(new SpeechSynthesisUtterance(window.getSelection()));
    }
    also i suggest adding a feature to move to next punctuation mark such as comma , semi-colon as "natural indention" is always provide there. i.e extend the window.getSelection()
    object by character until u encounter a comma, semicolon or fullstop.


    ReplyDelete