Using the JAWS Scripts For Youtube
Doug Lee
Last Revised February, 2024

This guide provides tips for using these scripts with Youtube and Youtube Music, collectively referred to as Youtube except where differences must be noted. When the scripts are installed and Youtube is open and focused in a supported browser, this document can be opened via a double press of JAWSKey+F1 (or Insert+F1).

Note that Youtube provides many keystrokes that do not require scripts, though they usually do require forms mode, pass-key-through, or disabling of the virtual cursor. These scripts simplify using some native commands while providing a few other shortcuts not provided by Youtube itself.

Table of Contents

System Requirements For JAWS Users

These scripts require the following for correct operation with the Youtube web site:

Script Installation Instructions

To install these scripts on a new system:

  1. Load JAWS if this has not already been done. This will require administrative privileges on the computer.
  2. 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.
  3. 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.
  4. To verify successful installation, type Insert+Q while Youtube is in focus in a supported browser. 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.

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.

Using Youtube With JAWS and the Scripts

The scripts provide the following key sequences:

[ S
Skip Ad. If a video ad is playing and a Skip button is present and clickable, this command will click it to make Youtube start playing the actual video requested.
[ R
Jump to the top of the right-side column of material on the page, when possible. This turns out to be a fast way to skip past the scrollable Comments section for a video to reach the rest of the page, e.g., other videos to play.
[ Space
Press the Play/Pause button if present. This works in both virtual cursor mode and forms mode.
[ T
Say Time. This command will speak the current time position in the playing video as well as the video's length. This command also works on Youtube live streams. If a Youtube Short is playing and it is longer than 30 seconds and shows a progress bar, this command will announce the percentage complete. If a video ad is playing, the times will relate to the ad rather than to the requested video. Note: The current time position is not always kept up to date by Youtube itself but will be updated if the video is paused and restarted or the play position is changed by the user.
[ 1 and [ Shift+1
Speak any currently displayed video caption text, or cause JAWS to announce such text automatically as it appears until focus leaves the current video window. See the Reading Caption Text section for further information on these features.
[ 2
Speak the current video's subtitle or chapter name if present. This may, for example, announce the name of the current song or track on a playing album. Not all videos support this Youtube feature. This script command is likely to say "not found" when used on a video without this feature.
[ 3 and [ Shift+3
Duplicates of F3 and Shift+F3, searching for the next and previous occurrences, respectively, of the text last sought via JAWSKey+Ctrl+F. These duplications are for those, including this author, who perform such searches frequently on web pages and wish to avoid the inconveniences of function keys (difficulties on some keyboards and the need to move hands out of home-row position).
[ N and [ Shift+N
Move to the next or previous page or video. This should work in playlists and wherever a Next and Previous button can be found. As of May, 2019, these commands work in Youtube Music to move among songs in the active queue. Note that the Previous button in a playlist or queue may restart the current video rather than moving to the previous video unless the video is near the beginning of its playback. Repeat the command to go to the previous video in this case.
[ M
Mute or unmute the current video. See also the M native Youtube command below.
[ V
Move focus to the volume slider for the currently playing video. This also switches JAWS into forms mode and causes a number of native Youtube keystrokes to become usable.
[ C
Go to the Youtube channel that owns the current video. This command only works on a video page and does not work for Youtube Music.
Note that some of the above commands, before executing, will attempt to press the "Hide Cards" button if present on screen, so that controls required by the script commands become available for action. If this button is found and pressed, JAWS will say "Hiding cards" before completing the command.

The following Youtube-native keystrokes work as indicated when JAWS is in forms mode or if the keystrokes are passed through JAWS directly to Youtube, such as with the JAWS "pass next key through" command, Insert+3. As noted in the below list, some Youtube keystrokes require focus to be on the video's volume slider. Except where noted, these commands do not apply to Youtube Music pages. Use a question mark (Shift+/) on those pages to get a list of native keystrokes.

Space (slider focus required) or K
Pause, resume, or play the current video. Works on Youtube Music pages.
J or L
Rewind or fast-forward the video by a few seconds.
Digits 1 through 9 and 0 (slider focus required)
Jump to a percentage through the video. 0 jumps to the beginning, 1 to 10% through, 2 to 20% through, etc., and 9 to 90% through.
Comma (comma) or Period (period)
Slow down or speed up the video without changing its pitch. This amounts to simple compression or expansion of the audio and video. Slowing down far enough may stop playback.
Up or Down arrows (slider focus required)
Turn up or down the volume of the video by increments of 5%. Right and Left arrows, respectively, perform the same actions and also require focus to be on the volume slider. The volume usually defaults to 100%.
Mute or unmute the sound of the video. Beware that the occasional video defaults to muted on starting, though this seems rare. Works on Youtube Music pages.
Home (slider focus required)
Mute the audio. This is not a toggle like M.
End (slider focus required)
Unmute the audio and move the volume to 100%. This is not a toggle like M.
Toggle between full screen and normal video size. Works on Youtube Music pages.
/ (slash)
Move focus to the Youtube search box. Works on Youtube Music pages.
Apostrophe (apostrophe)
Pop open and move focus to the Find bar for about four seconds.
For convenience, the scripts will prevent JAWS from speaking typed characters in forms mode when focus is on a slider, so that JAWS speech will not disrupt a playing video in response to native Youtube keystrokes.

Special Script Support For Live Stream Text Chatting

The scripts include a system for handling text chatting during a live stream: Type the prefix key, the left bracket ([) by default, then type as many of the following keys as desired to navigate among chat messages. Press Esc to exit the chat review mode when done. The navigation keys comprise the right-hand portion of the home row on a standard English US QWERTY keyboard: H goes to and reads the first message, J the previous from current position, L the next from current position, and the semicolon (;) the last message available. K repeats the last-read message.

Note that the above features also work in a stream playback after the stream has ended; however, observe the following caveats:

Reading Caption Text

These scripts offer two command sequences for handling closed caption (sometimes also called subtitle) text:

When available, caption text tends to be dialog or indicators of sounds in a video. Sometimes, such indicators can be informative to blind viewers; for example, "[whirring of lift]" may indicate that a whirring sound comes from an elevator, which may not be obvious otherwise.

Closed captioning is turned on and off with Shift+C and is more finely controllable from the Youtube Settings menu. If neither of these script commands announces any text, make sure the feature is turned on in Youtube itself for the current video.

Note: The automatic announcement of caption text is currently considered experimental and is subject to various timing and completeness issues, especially for auto-generated caption and translation text. To turn off automatic caption announcement, either use Shift+C to toggle the display of captions off in Youtube itself, or Alt+Tab once out of and back into the video window.

The following issues are known to exist with auto-announcement of caption text:

The rest of this section consists of notes on what can appear in caption text, the types of caption text that may be available, and what to expect from JAWS for each.

The following items may appear in caption text, according to this author's experience:

Notes on types of captioning:

Known Issues

Issues shown in this section may be fixed in future script revisions but are not addressed as of this writing.

Sometimes, [ V may announce the volume slider incorrectly. In this script author's experience, this only occurs after a great number of videos, such as 50, have been played without a browser restart.

Why Youtube Scripts?

As mentioned earlier, Youtube provides many keystrokes natively. However, most are blocked by JAWS' virtual mode (true for other screen readers as well), making them inconvenient to use in some situations. I wrote these scripts for at least the following reasons, not necessarily in order of precedence:

Revision History

Here is the revision history of these scripts, most recent revision first:

Revision 123, released February 10, 2024

Revision 122, released January 12, 2024

Revision 117, released October 21, 2023

Revision 115, released October 2, 2023

17 older revisions back through July 24, 2016

Revision 114, released September 28, 2023

Revision 96, released January 23, 2023

Revision 93, released July 19, 2022

Revision 90, released March 18, 2021

Revision 81, released April 26, 2020

Revision 74, released June 9, 2019

This revision just updates the scripts' handling of the Skip Ad command sequence, [ S, to work again after a recent Youtube update in how the Skip Ad button is displayed.

Revision 70, released May 24, 2019

In this revision, I had to replace the live stream chat navigation system with key sequences instead of key combinations. The primary reason was that the Alt+Left keystroke broke the standard browser keystroke for pressing the Back button. Alt+Enter also had issues though, and Alt+Right broke the Forward button command (though I suspect that one is in less common use). Alt with Up and Down are standard JAWS commands, and similar problems exist for arrows with any other combination of Alt, Shift, and Ctrl. See the Special Script Support For Live Stream Text Chatting section of this document for details on the updated chat navigation system.

Revision 68, released May 18, 2019

Revision 51, released February 24, 2019

Revision 41, released September 22, 2018

Fixed the method of activating the owning channel page for the [ C command sequence so it works even if the link is not visible or is only partly displayed.

Revision 40, released September 20, 2018

Revision 36, released August 13, 2018

Revision 35, released July 21, 2018

Revision 30, released September 2, 2017

Revision 29, released August 31, 2017

Revision 25, released March 3, 2017

Revision 17, released July 24, 2016

This is the first release of these scripts, including commands for the following: