JAWS Scripts For Tween and OpenTween
Doug Lee
Last Revised February, 2022
This document describes the scripts for Tween and OpenTween
(from now on referred to collectively as Tween)
and provides tips for using this application with JAWS.
Focus for these scripts is on OpenTween and not on the original Tween application.
This document can be opened from within Tween via a double press
of JAWSKey+F1 (or Insert+F1).
Table of Contents
System Requirements For JAWS Users
There are no known system requirements for these scripts beyond those for Tween itself.
The minimum JAWS version supported is JAWS 2018.
JAWS versions older than 2022 have not been carefully tested with these scripts.
The scripts are most thoroughly tested against OpenTween versions 2.5.x.
Script Installation Instructions
To install these scripts on a new system:
- Load JAWS if this has not already been done. This will require
administrative privileges on the computer.
- Run JAWS as the user for whom the scripts are to be installed.
This and the following steps must be performed for each user of the computer
who will be using JAWS with these scripts.
- Download and run, or run directly, the installer for these scripts; and follow the on-screen
directions. Be sure to install the scripts in the currently running
JAWS version if a JAWS version list is presented.
- To verify successful installation, type Insert+Q from
within the application. Part of the JAWS spoken response should be a
revision number. If you do not hear a revision number, the scripts are
not correctly loaded.
In some cases, restarting JAWS may fix this issue.
Configuring For Optimal Use With JAWS
The following suggestions are optional but may ease use of Tween/OpenTween with JAWS.
These suggestions apply through at least version 2.5.0.
To customize OpenTween, open Settings from the File menu. The Settings dialog consists of several pages. The
pages are organized in a treeView; arrowing through the tree changes which page is displayed. Beware that
top-level nodes like General and Behavior also have pages; they are not just groupings of pages.
Tween beginners may find it useful to type Insert+B twice in quick succession after selecting a
Settings page in order to explore it with a JAWS virtual cursor before making changes. The scripts make JAWS
announce most text in Settings pages, but some pages include helpful hints that are not announced because they
are not clearly associated with a particular field. Press Esc to close the virtual view and return
to the Settings page.
In OpenTween, the title bar can be customized to include various pieces of information that might be of use.
This is accomplished via a "Title format" combo box on the Display page of Settings.
This author's favorite setting is "unread items(unread @reply items)," which includes the total number of
unread tweets across all tabs, then the number of replies (mentions) that remain unread.
Users with multiple simultaneous application instances for different accounts may also find it useful to
check the "Show username in application titlebar and balloon" option, so that JAWSKey+T will indicate which instance is in focus.
The format of tweet timestamps is also adjustable, on the Lists page under Display, in the "Date Format in
List" box. There are several canned formats to choose from, but typing your own format is also permitted. This
author's preference, at this writing, is "MM/dd/yyyy H:mm," which translates to things like "08/25/2016 23:45"
(23:45 is 11:45 PM in so-called military time).
When finished reviewing or changing settings, Tab to OK or Cancel and press Space to
save or discard any changes, respectively.
Key Sequences
These scripts incorporate commands that consist of sequences of keystrokes, all beginning with a common prefix, or "command keystroke."
This approach allows many script commands without the risk of conflicting with application keystrokes.
See the "Multi-Key Command Sequences" section of the "Common Script Elements" document for further details, including
how to explore the available script commands (similar to exploring a menu system),
and how to change the Command keystroke if necessary.
By default, the Command keystroke for these scripts is [.
This document may refer to this keystroke as [ or Command;
so, for example, [ Tab and Command Tab both refer to typing the prefix keystroke, then separately the Tab key.
Some sequences may consist of more than two keystrokes, or "levels"; for example, [ d r would refer to typing [, then d, then finally r.
Script Features
Script Commands
The scripts provide the following keystrokes in addition to those provided by Tween and OpenTween:
- Tweet lists can be navigated much like HTML tables via the JAWS Ctrl+Alt combinations for tables, or via the JAWS table layer; see the next section.
- Key sequences consisting of [ followed by a digit will read corresponding columns from the focused tweet list: [ 1 reads the first column, [ 2 the second, etc. [ 0 reads column
10 if that many columns exist.
The name of the column is announced before the column value. When a column's name includes a sort indicator icon, the icon's "triangle" description is omitted for brevity.
Finally, when the Date column value consists of two numeric subparts separated by a single space, the scripts insert a comma between the parts to make the distinction between date and time more obvious.
Note that it is normal for a column (usually column 1) to say nothing, because both name and value are empty or graphic.
- [ T brings up a list of all tabs in the current screen for review and selection.
This works on the main screen for tweets and in the Events list for the various event filter tabs.
- The standard JAWS Insert+B command for reading a dialog box reads profile screens reasonably well
and includes more fields than are reachable via the Tab key.
This includes Bio and Latest Post material.
- When focus is in a Profile popup, Ctrl+Tab and Ctrl+Shift+Tab move focus between the Bio area, the Latest Post area, and the last-focused regular Profile field. This makes it possible to review Bio and
Latest Post material and to activate links within these areas via Space or Enter.
- Typing Insert+B twice in quick succession,
from within any screen although this feature is mostly intended for Profile screens,
places the results in a JAWS virtual buffer for closer
examination. Press Esc to exit this virtual view and return to the application when done reading.
Though this view currently includes some odd material when used outside of Profile screens, it does present an
approximate indication of the physical layout of a screen, for anyone curious.
(The layout presented for Profile screens is modified for better reading order.)
- The standard JAWS command for reading the bottom line of a window (usually the status line),
Insert+PgDn, reads the full Tween status line.
As with Insert+B, pressing this command twice will virtualize the information for further review.
In the virtualized view, the various portions of the status line information will appear on separate lines for easier reading.
Press Esc to return to the application when done reading.
The status line includes the following information:
- The number of unread items in the current tweet list (or tab), and the number of items in the list.
- The number of unread tweets across all tabs and the full number of tweets in all tabs combined.
- The number of unread replies in the Replies tab.
- Information on intervals and fetch speeds.
- The most recent action taken in the Twitter API, or the last-received error message from Twitter.
- When available, an indication of how many API calls have been used and remain for the currently active tab.
- [ E reads from the status line the last error message or most recent action taken.
- [ A reads from the status bar the remaining and total allowed API calls for the currently
displayed tab. The total number of allowed API calls may vary from tab to tab depending on Twitter API usage
rules. Generally, refreshing a tab manually will use at least one API call. If the remaining API call count
reaches zero, all tabs affected by this may cease to behave normally until the allowed API call count is again
reset to its maximum by Twitter. The time required for this to occur may again vary depending on the type of a
tab and the current Twitter API usage rules.
- [ G allows you to bring up a webpage in a JAWS virtual view by typing (or pasting) its URL into an edit box. This can be useful for rapid and/or safe examination of a website.
See the Browserless Web Page Review section for details and caveats.
- [ B reads the tweet to which the current tweet refers.
This could be a quoted tweet or a tweet to which the current tweet is a reply.
- [ D reads the detail area for the currently focused tweet. This includes information about
retweets, the direction of a DM, the timestamp of the tweet, etc.
Most of this information is also read automatically from the tweet list on arrows, but DM direction is not,
and the reordering of information here may sometimes prove useful.
- [ Shift+D virtualizes (brings up in a JAWS user buffer) the same tweet detail information for
more careful review, copying part or all to clipboard, etc.
This view also contains links for any associated web pages. Pressing Enter on one of these links will bring up the associated page in another JAWS virtual view. This permits rapid review of linked pages without
requiring the opening of a browser.
See the Browserless Web Page Review section for details and caveats.
- [ Ctrl+D moves focus to the HTML area containing the tweet in the twee tdetail area.
- There is a similar set of three commands for handling long tweets posted via any of various services that support this.
As of December 3, 2019, the supported services are these:
- Twishort.
- TwitLonger.
- Instagram.
- Amanda Rush's content management system at arush.io.
- [ L reads the full text of the long tweet.
- [ Shift+L displays the long tweet in a JAWS virtual buffer.
Use arrows and/or the JAWS
SayAll
command, JAWSKey+A, to read the tweet text. Press Esc when finished to return to the application.
- [ Ctrl+L launches the website containing the long tweet by activating the relevant link in the OpenTween Details area.
A few notes:
- The format of the long tweet text may not be identical to the format presented on its host website.
- Depending on your Internet connection speed and reliability, retrieving the text of a long tweet may pause JAWS for a few seconds. On a good connection though, the pause should be very brief.
- At this writing, the retrieval of very long tweet text has only been tested under JAWS 2019. If an older version of JAWS struggles with announcing a long block of text all at once with [ L, try using [
Shift+l and then the JAWS
SayAll
command, JAWSKey+A, instead. Press Esc when done reading in this way.
- [ R toggles on/off the reading of tweets from the detail area instead of the tweet list as you
navigate through a list of tweets. Among other things, this will cause DM direction to be indicated and will
automatically read quoted tweets.
However, this also slows navigation through a tweet list.
As of August, 2018, this setting survives across JAWS and system restarts.
- [ M toggles on/off the condensing of strings of contiguous mentions into mention counts.
This feature is useful in conversations that include many mentions. When this feature is active, a string of ten mentions will be replaced with "10 mentions."
This works when reading tweets from the tweet list and when reading via the Detail area as just described.
This setting survives across JAWS and system restarts.
- [ W announces "where am I" information - specifically,
- The name of the current tweet tab,
- The position among and count of tweets in this tab (e.g., "tweet 123 of 135"), and
- The position among and count of tabs available (e.g., "tab 4 of 7"). This is helpful because
Ctrl with digits 1 through 8 will move directly to tabs; thus, Ctrl+4 will
jump to the fourth tab.
Other Script Features
In addition to the commands just described, the scripts also provide the following features:
- The JAWS Quick Settings command, JAWSKey+V, includes Tween-specific settings.
Besides the "condense mentions" and "read tweets from detail area" settings already discussed, the Quick Settings include a setting that turns on and off the announcement of status-line messages as they appear.
These usually consist of refresh notices and error messages, such as when a tweet is blocked or protected and cannot be displayed.
This setting is on by default but can be turned off.
- For tweets that begin with a very large number of mentions (e.g., 40), which can make the length of the tweet exceed an internal item name length limit in JAWS, the scripts make arrows read the entire tweet.
- Typing a tweet no longer causes excessive extra speech on each
typed character.
- Insert+T includes the current tab name when one is active.
Note that this does not apply when focus is in the tweet composition area, which is actually outside of any tab.
- Typing Insert+Tab while composing a tweet or DM reports the number of characters still available.
If too much text is in the window already, this number will be negative.
This number also shows up in Braille before the field.
- Tabbing through a Profile screen produces more sensible speech.
- Status-line updates indicating the last Twitter action speak as they appear. This includes indications of
buffer refreshes, tweet posting, etc. This feature can be turned on and off in the JAWS Quick Settings dialog (JAWSKey+V).
- Ctrl+Up and Ctrl+Down in the posting edit window scroll among previously typed tweet
text blocks. The scripts cause these keystrokes to read each block of text as it appears.
- The controls in the dialog for uploading an image with a tweet (Ctrl+Shift+P) are named, even
when there is no name on screen.
- If focus lands on the main window while it is disabled due to another popup dialog, focus is placed on the dialog. This can happen when a focus hotkey is set and used to focus OpenTween while a dialog, such as a user
profile, is open.
- The scripts try to move the mouse off the menu bar area when the application receives focus, because hovering the mouse over that area activates the menus.
- JAWSKey+Q, along with announcing the active configuration name, will announce the revision number of these scripts.
- Insert+F1, typed twice in quick succession, opens this document in the default browser.
Tabular Tweet List Navigation
These scripts make standard HTML table navigation commands
(Ctrl+Alt with arrows, Home, End,
etc.) apply to tweet lists. This facilitates scanning down columns other than column 1
without having to type numerous or difficult key sequences.
There are also a few added commands for clicking cells and column
headers without having to use the JAWS cursor. This simplifies resorting tweet lists, for example.
In JAWS 13 and later, the Table Layer commands also work on supported controls.
This system of tabular navigation is borrowed from the
ListTbl scripts by this same author,
but without requiring ListTbl to be installed.
The following table lists the additional functions with the commands
for each supported keyboard layout:
Added ListView Support Commands
Function |
Common/Desktop Layout |
Laptop and Classic Laptop Layouts |
Kinesis Layout |
Table Layer |
Description |
Left-click cell |
Ctrl+Alt+NumPad / |
Ctrl+Alt+8 |
Ctrl+Alt+I |
NumPad / |
Left-clicks The Current Cell In The listView. |
Right-click cell |
Ctrl+Alt+NumPad * |
Ctrl+Alt+9 |
Ctrl+Alt+O |
NumPad * |
Right-clicks The Current Cell In The listView. |
Left-click header |
Ctrl+Shift+Alt+NumPad / |
Ctrl+Shift+Alt+8 |
Ctrl+Shift+Alt+I |
Shift+NumPad / |
Left-clicks The Column Header Above The Current Cell In The listView. |
Right-click header |
Ctrl+Shift+Alt+NumPad * |
Ctrl+Shift+Alt+9 |
Ctrl+Shift+Alt+O |
Shift+NumPad * |
Right-clicks The Column Header Above The Current Cell In The listView. |
Note:
Though standard JAWS Table Layer commands do not exit the Table Layer, the above Table Layer commands will do
so. This is because clicking cells and headers usually causes new or reorganized screens to appear, whereas
the standard JAWS Table Layer commands simply navigate among cells.
As a side effect, it will be necessary to use commands outside of the Table Layer in order to double-click
cells.
Browserless Web Page Review
The key sequence [ Shift+D brings up a JAWS virtual view of the current tweet from its Detail area. In this view, links from the Detail area become links in the virtual view. Pressing Enter on one of these
links will attempt to display the associated web page in a new JAWS virtual view. This provides a sometimes much faster way to examine a linked page by avoiding the need to open a browser. It may also improve security, since
absolutely no Javascript or other active client-side code from a website will be run on your computer in this case.
There is also a way to bring up a webpage directly from its URL: Type [ G. A dialog will appear requesting a URL. Type or paste the URL of interest and press Enter. The requested page will appear in the
same virtual view just described.
There are a few caveats to keep in mind:
- Not all websites or pages will work well with this system. Pages that require code to run on your computer in order to function properly may not display fully, for example. In addition, sites that block automated scanning
and/or (bots) may be confused by this browserless approach and may return an error or different content accordingly.
- The JAWS scripts make an effort to eliminate prefatory material (navigation links, leading advertisements, etc.), but the approaches used for this will not likely work equally across all pages on the Internet.
- Some pages may fail to show the full main content in this view, for any number of reasons.
- At the time of writing, this system does not properly support frames.
At this writing though, this author finds frames mostly used as means of showing advertisements, as opposed to primary content.
- Links in a virtualized page may, but currently often do not, work. They do show up as links, however; and support of this sort of actual page-to-page browsing may be included in a future script release if of sufficient
interest.
- Finally, pages that send content in chunks and wait for responses may load slowly and/or incompletely.
At this writing, this appears to be a rare scenario in this author's experience.
In general, this author finds the following approach extremely helpful and efficient for reading many reports, blogs, news articles, etc. that are advertised via Twitter:
- Type [ Shift+D to virtualize the advertising tweet's Detail area.
- Locate the link being advertised, and press Enter on it.
- When the new virtual view of the linked page opens, use Ctrl+Down repeatedly to jump past any prefatory material not removed by the JAWS scripts from the view.
- Use arrows and/or the JAWS "Say all" command, Insert+Down, to read the page content.
- Press Esc when finished, to return to Tween.
This virtualization feature will likely undergo updates from time to time to improve its ability to work with more pages, based on user needs and requests.
Using Tween and OpenTween
This section and its subsections are written based on OpenTween 1.3.2 but have proven valid through at least OpenTween .4.3.
Some keystrokes and functionality may not apply identically in other OpenTween versions or in Tween.
Any entries containing three question marks (???) need further clarification.
The commands and functionality described in these subsections apply regardless of whether JAWS or these scripts are running.
Reading and moving among tweets and tweet lists
Reading and moving among tweets and tweet lists
Keystroke(s) | Description |
Space in a tweet list | Jump to the next unread tweet in the current buffer. If there are none, move to the first unread tweet in the next buffer with unread tweets. If there are none, move to the last tweet in the Recents tab. |
Space when typed as the first character in the posting area | Focus the currently active tweet list (tab) and perform the same action as for Space typed in that list. |
Down or J and Up or K in a tweet list | Move to the next or previous tweet in the current list. |
Shift+J and Shift+K in a tweet list | ??? |
Ctrl+J and Ctrl+K in a tweet list | ??? |
Ctrl+Shift+J and Ctrl+Shift+K in a tweet list | ??? |
Home and End or Shift+G in a tweet list | Move to the first or last tweet in the current list. |
[ and ] | Move forward and backward through the chain of replies (the thread). This avoids encountering tweets unrelated to a conversation but will often miss relevant tweets, such as when one person sends three replies to one tweet. |
Right and N or Left and P | Move to the next or previous tweet that might be part of the current thread or conversation. This may encounter tweets unrelated to the conversation but should not miss relevant tweets. |
Shift+Right and Shift+N or Shift+Left and Shift+P | Move to the next or previous favorited tweet in the current list. |
H and L in a tweet list | Move to previous or next tweet by the same user as the current one. |
Alt+Left and Alt+Right | Move to the previous or next tab containing the current tweet and place focus on that tweet in the newly selected tab. These commands do not cycle; use Alt+Left to check tabs left of the current one and Alt+Right to check higher-numbered tabs. |
G | Put related tweets in a new tab. This includes only related tweets prior to, not after the current one. |
Ctrl+E | Open URL in Tween. In OpenTween, also lists users mentioned, hash tags, and multiple URLs when present, for selection and also includes the quoted tweet when applicable. Pressing Enter on a line in this list has the following effects depending on the contents of the line:
- A URL opens in the default browser.
- A user handle pulls the user's timeline up in a tab.
- A hash tag opens a search buffer for the hash tag in a tab.
- A quoted tweet opens a "Related Tweets" tab for the tweet quoted.
|
Period (period) | Move to the anchor??? |
Shift+H, Shift+M, and Shift+L in a tweet list | Move to the top, middle, or bottom tweet in the displayed portion of the list. |
Z and Shift+Z | Scroll the current tweet to the top or bottom of the display area??? |
Ctrl+F | Open a dialog for finding the next tweet by matching text. Includes support for case-sensitive and case-insensitive searches. |
F3 and Shift+F3 | Find the next or previous tweet in the current buffer matching the last search entered via Ctrl+F. Opens the Ctrl+F dialog if not yet opened since the application was launched. |
Ctrl+I | Open in a dialog the tweet to which the current tweet is a reply. |
Ctrl+Tab and Ctrl+Shift+Tab | Cycle among buffers (tweet lists). Ctrl+N and Ctrl+P do the same thing but appear to be undocumented. |
Ctrl+1/2/3/4 | Jump to standard tabs: recents (home), replies (mentions), messages (DM), favorites. |
Ctrl+5/6/7/8 | Jump to user-created tabs where applicable. |
Ctrl+9 | Jump to the last available tab. |
Esc or Ctrl+W | Close the current tab if possible. Standard tabs may not be closed, and protected tabs may not be closed without being unprotected first. Use "Protect Tab" in the Tab menu (Alt+T P) to toggle protection of user-defined tabs. |
Posting tweets
Posting tweets
Keystroke(s) | Description |
Enter | Reply to the current tweet (by default but can be changed at least in OpenTween). |
Ctrl+M | Send a direct message (DM) to the current tweet's poster. |
Ctrl+R | Reply to the current tweet's poster (send a mention). Warning: Sends a mention, not a DM, if used on a DM in at least OpenTween 1.3.2, despite documentation to the contrary. |
Ctrl+Shift+R | Reply to the current tweet's poster and mention all others mentioned in the tweet. Warning: Sends a mention, not a DM, if used on a DM in at least OpenTween 1.3.2, despite documentation to the contrary. |
Alt+R | Retweet (RT) without comment (new style). |
Alt+Shift+R | RT with comment (old style). Ctrl+Q is usually better nowadays. |
Ctrl+Q | Quote the current tweet. This simply includes an URL pointing to the tweet and leaves you much more space to type a comment. |
Ctrl+L in the posting area | Shorten the selected URL. Must select the URL first. Warning: Do not simply select the entire input area, particularly if it contains multiple URLs. Attempting this in at least OpenTween 1.3.2 with text including multiple URLs selected can produce an error message in the application. |
Ctrl+Up/down in the posting area | Scroll up and down among recently posted tweets. |
Ctrl+Y | Toggle multi-line mode for the posting area. |
Ctrl+Shift+P | Open a dialog for posting an image along with a tweet. |
I from a tweet list | Move focus to the posting edit (input) box. Tab accomplishes the same thing. |
Copying from a tweet to the Windows clipboard
Copying from a tweet to the Windows clipboard
Keystroke(s) | Description |
Ctrl+C | Copy the full tweet text including the URL pointing to the tweet on twitter.com. |
Ctrl+Shift+C | Copy only the Twitter URL for the current tweet. |
Alt+Shift+C | Copy the Twitter user handle for the current tweet. |
Opening related screens from a tweet
Keystroke(s) | Description |
Ctrl+U | Open the current tweet poster's timeline as a tab. |
Alt+C U | Open any user's timeline. There are other useful options in the Command (Alt+C) menu. |
Alt+P | Open the user profile for the current tweet's poster. |
Ctrl+H | Open the Twitter page for the user who posted the current tweet. |
Ctrl+G | Open the favorites page for the user who posted the current tweet. Requires logging into twitter.com. |
Ctrl+O | Open the page for the current tweet on twitter.com. |
Ctrl+Shift+O | Open this poster's Favstar Recents page. |
Miscellaneous commands
Miscellaneous commands
Keystroke(s) | Description |
F1 | Open a help page. For OpenTween, this opens the OpenTween Wiki front page. |
Ctrl+S | Favorite the currently selected tweet or tweets. |
Ctrl+Shift+S | Unfavorite the currently selected tweet or tweets (deletes from the Favorites tab). |
Ctrl+Shift+F | Edit conditions defining which tweets to place in the current tab. This applies to search tabs. |
Ctrl+A | Select all tweets in the current buffer. |
Ctrl+B | Mark the selected tweet or tweets as read. To mark all tweets in the current buffer as read, type Ctrl+A and then Ctrl+B. |
Ctrl+Shift+B | Mark the selected tweet or tweets as unread. |
Ctrl+D | Delete a tweet or tweets you have posted. Also deletes from Twitter. |
F5 or R | Reload/refresh the current tab. |
Shift+F5 or Shift+R | Pull the next batch of older tweets into the current tab. |
Ctrl+T | Open the hash tag configuration manager. |
Ctrl+Shift+T | Switch on/off the automatic addition of a hash tag to outgoing tweets. |
F6 | Update mentions regardless of which tab is displayed. |
F7 | Update direct messages regardless of which tab is displayed. |
Shift+F6 and Shift+F7 | Retrieve the next batch of older mentions and direct messages, respectively, into their respective tabs without regard to which tab is showing. |
Tips For JAWS Users
A quick way to check who RT'd a tweet is to use
the sequence [ 5, which reads the Username field from the list (assuming the default column setup).
An alternative is to use
the [ D sequence to read the tweet detail area,
because the RT info there comes before rather than after the tweet itself.
Known Issues
Issues shown in this section may be fixed in future script and/or
application revisions but are not addressed as of this writing.
Very long DMs can read incompletely in the DM list. Using [ D or the [ R toggle to read the detail area will speak
the full DM text in such cases, as will navigating across the line to the "Post" column using JAWS table
navigation commands.
The script prefix key, [, conflicts with the OpenTween command for moving to the tweet to which the
current tweet is a reply. To use this OpenTween command, type the keystroke twice instead of just once.
The background color of the Detail area in the "Font & Color" Settings page is not announced by JAWS.
Neither are the colors in the Backgrounds page.
Dialogs for setting text colors from the "Font & Color" Settings page are not easy to use with JAWS.
The scripts may sometimes stop performing certain tasks until the next restart. Examples include profile
screen reorganizations for Insert+B and some field labeling. This is caused by the JAWS
GetControlIDString
function ceasing to return any values until the next JAWS restart. This should
be fixed in JAWS itself and is not possible to fix via scripting without
risking a serious performance reduction for some operations.
Revision History
This is the revision history of these scripts, most recent revision first:
Revision 227, February 23, 2022, tested in application version 2.5.0.0
This is a maintenance update to the scripts, upon the revival of OpenTween after two years of down time. Changes:
- The minimum JAWS version is raised from 14.0 to 2018.
- Screen readers respond better to activation of Table of Contents links in this document,
and other miscellaneous improvements in document content and conformance are included.
- Code updates for better JAWS 2021 and 2022 support are included,
and some support for much older JAWS versions is removed at a possible slight increase in script performance.
- The installer contains version and product information visible from the Details tab in
Windows Explorer, to better identify its contents.
- A "directives" text file is included that provides information on how to install this set of scripts manually.
See "Handling Directives Files"
in the "Common Script Elements" document for further information.
- The messages for these scripts are now distributed in XML rather
than jsm files so that translators can create translations with no need
for script source or recompilation.
See the Script Translation
Procedure document for details on how to translate these scripts,
including how to update the XML message file.
- For those who need to change the Command key, the left bracket ([) by default,
the system is significantly improved, so that you need not type the key or key combination
out as a name or string of key names. You may edit the keystroke names before
accepting them, but JAWS will type them out for you now. You will find that JAWS will even
remember, unless you edit this out, which specific key you use; e.g., Leftshift
and Rightshift are different keys, if you want them to be. In fact, weird key combinations
like Leftshift+Rightshift+S are legitimate key combinations. The system is documented in more detail in
the Multi-Key
Command Sequence section of my Common Script Elements page.
Revision 213, released January 17, 2020
- Key sequences consisting of [ followed by a digit will read corresponding columns from the focused tweet list: [ 1 reads the first column, [ 2 the second, etc. [ 0 reads column
10 if that many columns exist.
The name of the column is announced before the column value. When a column's name includes a sort indicator icon, the icon's "triangle" description is omitted for brevity.
Finally, when the Date column value consists of two numeric subparts separated by a single space, the scripts insert a comma between the parts to make the distinction between date and time more obvious.
Note that it is normal for a column (usually column 1) to say nothing, because both name and value are empty or graphic.
- The scripts try to move the mouse off the menu bar area when the application receives focus, because hovering the mouse over that area activates the menus.
- Insert+b, pressed twice quickly, virtualizes the current screen (intended for user profile screens) even if a menu is active.
This is now allowed over an active menu because, on one occasion, this script author encountered a situation where OpenTween reported a menu to remain active until the application was closed and restarted, thus disabling the
virtualization feature until an application restart.
- Insert+b processing may be slightly faster.
- Added the [ g sequence for directly rendering a specific webpage by its URL into a JAWS virtual view.
- Removed a beep sometimes heard during at least collection of tabs for [ t.
- Fixed an HTML processing issue or two in the code that displays web material in a JAWS virtual view.
- In a virtual webpage view, LI tags appear as asterisks.
This is of course imperfect though, because this means that items in ordered lists (OL tags) appear as asterisks as well rather than as numbers.
- The commands for reading long tweets support two more services: Instagram, and Amanda Rush's arush.io site.
- A few updates to the user guide are included.
Revision 196, released August 21, 2019
- A beep produced on tweets fixed by the previous release is removed. This beep was present during script testing in order to verify successful evasion of tweet truncation, but the beep inadvertently remained in the release.
- [ Shift+d is enhanced to include links in the virtualization of the current tweet. Pressing Enter on such a link will attempt to render the page referred to in a JAWS virtual view, permitting quick
reading of many pages without opening a browser.
See the Browserless Web Page Review section of the script user guide for details and caveats.
Revision 186, released July 2, 2019
- For tweets that begin with a very large number of mentions (e.g., 40), which can make the length of the tweet exceed an internal item name length limit in JAWS, the scripts make arrows read the entire tweet.
This applies whether or not the condense-mentions feature is turned on.
(Of course, such tweets are what made me write the condense-mentions feature in the first place.)
For the curious, I was made to notice the JAWS buffer length limit issue on July 1, 2019, when reading a conversation in which most tweets began with 50 mentions each.
Revision 182, released June 19, 2019
- There is a new setting in Quick Settings (JAWSKey+V) for toggling on and off the automatic announcement of changes to the OpenTween status line as they occur.
These usually consist of refresh notices and error messages, such as when a tweet is blocked or protected and cannot be displayed.
This setting is on by default but can now be turned off.
Revision 178, released June 10, 2019
- The JAWS Quick Settings command, JAWSKey+V, includes Tween-specific settings.
- [ b reads the tweet to which the current tweet refers.
This could be a quoted tweet or a tweet to which the current tweet is a reply.
- There are three new commands for handling instant access to long tweets
(currently Twishort and TwitLonger are supported):
- [ l reads the full text of the long tweet.
- [ Shift+l displays the long tweet in a JAWS virtual buffer.
Use arrows and/or the JAWS
SayAll
command, JAWSKey+a, to read the tweet text. Press Esc when finished to return to the application.
- [ Ctrl+l launches the website containing the long tweet by activating the relevant link in the OpenTween Details area.
A few notes:
- The format of the long tweet text may not be identical to the format presented on its host website.
- Depending on your Internet connection speed and reliability, retrieving the text of a long tweet may pause JAWS for a few seconds. On a good connection though, the pause should be very brief.
- At this writing, the retrieval of very long tweet text has only been tested under JAWS 2019. If an older version of JAWS struggles with announcing a long block of text all at once with [ l, try using [
Shift+l and then the JAWS
SayAll
command, JAWSKey+a, instead. Press Esc when done reading in this way.
Revision 163, released June 2, 2019
- The minimum supported JAWS version is now 14.0 rather than 11.0.
- Vertically long (often poetic) tweets are no longer cut short when read by Insert+b or [ d or via navigation when tweets are being read from the detail area.
The [ Shift+d virtual view of the Detail area is also complete now for such tweets.
- When a Profile screen is in focus, Ctrl+Tab and Ctrl+Shift+Tab move focus among the last-focused Profile field, the Bio area, and the Latest Post area. This facilitates review of Bio and Latest Post
areas and allows link activation within them via Space or Enter.
- [ e reads the last error message or Twitter action result from the status line.
- If focus lands on the main window while it is disabled due to another popup dialog, focus is placed on the dialog. This can happen when a focus hotkey is set and used to focus OpenTween while a dialog, such as a user
profile, is open.
- Space is again silent when it is used to read tweets. This broke in either OpenTween 2.2.0 or JAWS 2019.
- A few scripts that were missing help text for Keyboard Help mode now have it.
- Less verbiage as focus moves between tweet lists in some cases.
- Possibly faster response in the post edit box.
- Possibly better reading of edit controls in some dialogs with Insert+B.
- Source code to the scripts is no longer included. See my Script Distribution Policy document for details.
Revision 141, released August 4, 2018
- The key for toggling use of the Detail area when reading tweets with arrows, formerly F2, is now the sequence [ r.
- The sequence [ m toggles on/off a new feature that condenses strings of mentions into just a mention count. This is very handy in Twitter conversations involving many people.
- The above two settings survive across JAWS and system restarts rather than requiring users to reset them manually.
Revision 134, released July 16, 2018
- The installer version is reverted to the older one in an effort to help those for whom the newer one bothered antivirus software.
- The installer tries drives D and E along with C when trying to find the JAWS executable but not permitted to read the Windows registry.
- A couple minor installer language and comment cleanups.
- More cleanup of HTML entities supported when reading tweets.
Revision 116, released September 5, 2017
- The scripts can install under JAWS 2018 beta and should also install under JAWS 2018 when it is officially released.
- In the installer, failure to find any JAWS versions results in a log display.
- Space is silenced in lists so it can be used more efficiently to read unread tweets across all buffers.
- Users who need to change the Command key, the left bracket ([) by default, may do so by typing Command JAWSKey+C.
- The sound played on key layer exit is much quieter.
- HTML in messages should no longer be removed on reading or displaying the details area for a tweet.
- There may be a slight speed improvement in Braille support.
Revision 107, released October 27, 2016
- F2 toggles on/off a new feature that makes JAWS read tweets in tweet buffers from the Details
area rather than from the tweet list. This causes DM direction (to/from) and other information to speak that
is usually missed, at the expense of a slight decrease in performance on each arrow.
At this time, this setting is not saved across JAWS restarts; you will have to press F2 after
restarting JAWS to turn the feature on again.
- [ t brings up a list of tabs for selection by incremental search. This makes it very fast to
find a tab when many are open. This also works for the tabs in the Events screen.
Revision 98, released September 18, 2016
- The scripts have now been tested against OpenTween 1.3.3 and 1.3.4.
- [ a announces, when available, the remaining and total API calls that apply to the current tab.
- Field hints displayed on Settings pages speak after the field, like JAWS tutor text would do.
- Many Settings page fields for setting fonts and colors are more usable.
- The dialog for building filter rule sets is made more accessible.
- The Profile screen virtualization (double Ins+B) is slightly reorganized to improve readability.
- The user guide includes more tips for general usage, including guidance on configuring Tween/OpenTween
for maximum efficiency with JAWS.
- There are improvements in the handling of TreeView controls.
- Fix: Tab counts on [ w are correct where they sometimes were not.
- Fix: Ins+B reports the correct information after a switch among Settings pages.
Revision 66, released August 17, 2016
This is a very major script update and replaces all previous support for Tween with new scripts for Tween and
OpenTween. The following change list is far from comprehensive and is only meant to assist those who used the
previous (2015) scripts for Tween. For full details on this release, consult the
JAWS Scripts For Tween and OpenTween users guide.
Changes affecting users of the original Tween scripts:
- This revision drops support for JAWS versions older than the latest update to JAWS 11, in order to support
advances in the JAWS scripting language.
- OpenTween is now supported along with Tween.
- Ins+T includes the name of the active tweet list when focus is in one.
- Ins+Tab announces, and Braille shows, the number of characters remaining during tweet
and DM composition.
- The installer is now Nullsoft rather than Inno Setup, and there is now a script uninstaller.
- The Ctrl+Shift+D command for focusing the tweet detail area is changed to the key sequence
[ Ctrl+D but is likely to be far less often necessary.
- The key sequence [ d reads the twee detail area without changing focus, and the sequence [
Shift+D places the material in a JAWS virtual buffer for more thorough review, copying portions to
clipboard, etc.
- Tween.jcf is no longer replaced when the scripts are installed. This means that any custom configuration
changes set up by the user or by previous Tween scripts, such as a customized reading of tweet list items,
will not be changed by updating these scripts.
- These scripts no longer customize the presentation of tweets. Users may accomplish this through JAWS'
Customize ListView utility. As just mentioned though, if you used the previous version of these scripts, the
customizations established then will remain in effect.
To apply the customizations from the original scripts manually without using the JAWS Customize ListView utility,
place the following in tween.jcf in your JAWS user folder:
[Listview Options]
8381CCE3=0|2|3|-4|-5|-8|
Revision 12, released June 11, 2015
Ctrl+Shift+D moves focus to an HTML area containing the tweet.
This is useful for the form of retweets in which the original
tweet text is not present but is replaced with a link to the original
tweet itself.
At least in OpenTween, this material can also be viewed natively via the g and Ctrl+E commands.
Ins+Q includes the revision number of the Tween scripts, to
ease verification of correct script installation.
Revision 7, released September 9, 2012
This is the first public release of these scripts. Features included:
- Typing a tweet no longer causes excessive extra speech on each
typed character.
- The tweet list reads less information on each arrow key.
- Insert+F1 brings up the script documentation.