Skip to content
Priyan Vaithilingam edited this page Dec 1, 2017 · 9 revisions

Welcome

Code Talk is an effort towards making Integrated Development Environments (IDEs) more accessible. The plugin currently concentrates on four main aspects of Programming:

  1. Glanceability
  2. Navigability
  3. Real-Time Error information
  4. Accessible Debugging

CodeTalk is currently only available for Visual Studio running on Windows. We are working very hard towards bringing it to more platforms and IDEs. Stay tuned for updates.

Contribute

Please visit the Contribution page.

Features

Glanceability

These features help the user to glance through the code. These features require a set of key combinations, as mentioned in the feature explanation.

File Summary (CTRL + 1 , CTRL + M)

Invoking this option shows the summary of the current active code file. This is a tree view containing all the namespace, class, functions etc. Pressing enter on the selected item will take you to the start of respective block.

Functions List (CTRL + 1 , CTRL + F)

Invoking this option shows a list of all the methods in the current active code file. the user can go to the selected function by pressing enter on the selected ListItem when it is in focus.

Get Current Context (CTRL + 1 , CTRL + G)

Invoking this option shows the context with respect to the current cursor position in the code file in focus. This is a list view containing all the ancestors of the current line in the code file. For example if the cursor is inside a function this will list the function, class in which the function is present, and the namespace of the class, all the way to the top most hierarchical structure. The list view starts from the bottum with the user pressing the up arrow key to navigate the list view. Pressing enter on the selected item will take you to the start of the block corresponding to the selected list item.

Move to Parent (CTRL + 1 , CTRL + J)

Invoking this option will move the cursor position to the start of the parent block. For example, if the current cursor is inside a function, this will move the cursor to the class in which it is present. If the cursor is inside a class, the cursor is moved to the enclosing namespace. The screen reader does not currently announce the line to which the cursor moves. The easiest way to know where the cursor has moved to is to use the read current line functionality of the screen reader that is enabled on your computer.

Skip Comment (CTRL + 1 , CTRL + C)

Invoking this option will skip the XML summary comment for the current block if the cursor position within the comment. Else no action is taken. The screen reader does not currently announce the line to which the cursor moves. The easiest way to know where the cursor has moved to is to use the read current line functionality of the screen reader that is enabled on your computer.

Real-Time Error Information

These features help developers to detect and correct errors easily. In the event of a syntax error in the code file in focus, CodeTalk will alert you with an audio tone that an error is present. The alert plays after 2 seconds from the time you stop pressing keys on the keyboard.

Errors (CTRL + 1 , CTRL + E)

Invoking this will give you a list of all the syntax errors in the code file in focus. Pressing enter on the selected item will take you to the line where the error had occured. In case the file does not have any syntax errors, invoking this functionality will display a popup indecating that there are no errors in the file.

Automatic Error Detection

Code talk automatically checks for syntax errors from time to time and will proactively alert the user with a mild tone in the background. The user can then get error information using the previously mentioned errors functionality.

Talkpoints

Talkpoints are a unique and new way to debug in visual studio. Talkpoints are audio breakpoints which are accessible and simple to use. There are three types of Talkpoints:

  • Tonal Talkpoints : Tonal talkpoints are breakpoints which will play an audio tone when hit. The developer can choose from a list of included tones. While we currently have 2 default tones, external tones will be supported soon.

  • Textual Talkpoints : Textual talkpoints are breakpoints which can speak text out when the breakpoint is hit. The developer can give any string for code talk to speak.

  • Expression Talkpoints : Expression talkpoints are breakpoints which can evaluate an expression and speak the result out. The developer should give any expression valid in the block and the result will be spoken when the breakpoint is hit.

Adding a Talkpoint (CTRL + 1 , CTRL + B)

To add a talkpoint, press CTRL + ~ , CTRL + B and choose the type of talkpoint from the talkpoint window. In case of tonal talkpoint choose the tone and in case of textual or expression talkpoint enter the statement or expression respectively. The continue breakpoint checkbox, if enabled, will not break when the talkpoint is hit and the execution resumes after audio. If unchecked, the execution breaks. Clicking the add talkpoint button will add the talkpoint to the code.

Notes:

  • Currently only one talkpoint is supported per line. support for Multiple talkpoints per line is coming soon.
  • Pressing Control + 1, Control + b on a line containing a TalkPoint will remove the TalkPoint on the line.

Configuring CodeTalk

To best accommodate to the different keyboard preferences of our users, we have made all of CodeTalk's keyboard shortcuts completely configurable. Before we talk about how to configure these, here are a few terms that could come in handy.

  • The CodeTalk modifier key is the control key by default. This is the key that the developer presses as a part of the first part of the keyboard shortcut (Control + 1) for all CodeTalk functionality by default.
    • The CodeTalk key is the key that is pressed along with the CodeTalk modifier key for all commands. This is the 1 key (located in the row below the function keys).

      To configure CodeTalk's keyboard shortcuts, go to the tools menu, followed by the CodeTalk options option.


Clone this wiki locally