Hi Jason, > Brian's clarifications will be very useful in this discussion. Is there something I didn't cover in my overview of Ultrasonix's approach? I was in a pretty big hurry, so it's possible. Thanks, (Here's a reprint of my remarks...) Ultrasonix has 2 methods of treating different content differently in this regard. First, Ultrasonix comes with a set of templates for each widget set. Each widget has a template which defines attributes that Ultrasonix finds interesting - is this widget input-sensitive? can this widget be edited? what string should be spoken or displayed in Braille when the user lands on it? what sound should be played? etc. Second, Ultrasonix has a set of screen-reading primitives which can be accessed through TCL scripts. A particular TCL function, for example, is called whenever the down-arrow key is pressed. Users can modify this function to get the behavior desired. Brian. -- --------------- Brian L. Sellden - brian@xxxxxxxxx, http://www.henge.com/~brian Just another hack at Gateway User of Emacspeak 8.0, making Unix talk. What on earth would a man do with himself if something did not stand in his way? -- H.G. Wells