handicap accessibility

From: Eric S. Johansson <esj_harvee.org>
Date: Mon, 02 Jun 2008 15:09:07 -0400
A couple of months ago I wrote about handicap accessibility and minimum profit. 
  There are multiple levels of accessibility and the only one I'm asking for is 
some additional navigation/editing operations and some method to invoke them.

Speech recognition connection to applications takes two forms.  The first is key 
generation.  If you speak something that matches a grammar, the terminal element 
in the grammar emits some keystrokes and the action is performed.  For example, 
the phrase "move to end of line" yields the "end" key.  The second is API 
driven.  The second option is frequently faster and more reliable than key 
generation but it's significantly more difficult to implement.  The reason for 
the speed and reliability differences that some applications cannot accept 
keystrokes at a high speed and drop them on the floor.  But under the "don't 
borrow trouble" clause, let's not worry and assume that keystrokes will be good 
enough.

Unfortunately, connecting to an application is not sufficient.  Usually most of 
the functions available are tuned towards hand driven operation.  Speech driven 
interfaces need a different set of operations or functions.

Without a special mediator for converting English words into codewords, the most 
common set of needs involve navigation and selection.  The secondary level of 
needs our operations on the selected region.  For example:

"between parens" generates two parentheses and then moves the cursor between the 
two of them.  For parens you can substitute brackets, braces, quotes, double 
quotes, triple quotes.  For 'between', you can substitute 'matched'.  And when 
you say "matched parens", this system should generate two parentheses and leave 
the cursor after the last one.  But

But what happens when you want to go back and change something that you put 
between parentheses?

     if foo.has_key(wire):

I should be to say "jump between parens" and end up with the cursor between "(" 
and "w".  Yes I should have the ability to put one between 'e' and ')' but I 
haven't figured out what I want to say.  The kind of navigation pieces I would 
like is the ability to jump to predicates, methods, classes, index, left value, 
right value, and arguments 1..N.

But what might be more important is the ability to select those same items. 
Again, using the example above, saying 'capture first argument' should capture 
the phrase "wire" into the cut paste buffer as well as selecting it.

This is a very rough cut model of what speech recognition/programming by voice 
folks could use.  I know it's a pretty significant chunk of work so I understand 
if it's too much to tackle.


-- 
To unsubscribe, send mail to mp-unsubscribe_lists.triptico.com.
Received on Mon Jun 02 2008 - 21:09:07 CEST

This archive was generated by hypermail 2.2.0 : Mon Jun 02 2008 - 21:26:07 CEST