Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
3602b95
Bump tar-fs from 3.0.9 to 3.1.1
dependabot[bot] Sep 24, 2025
1b510fc
Merge pull request #686 from ableplayer/dependabot/npm_and_yarn/tar-f…
joedolson Sep 26, 2025
45a54b1
Merge pull request #687 from ableplayer/develop
joedolson Sep 26, 2025
562b6b5
Merge pull request #688 from ableplayer/develop
joedolson Sep 28, 2025
2cb553f
#692 Parse timestamp tags in WebVTT
richard-smith-preservica Oct 16, 2025
48a8655
Setting max-width does not set width; need video to default to 100%
joedolson Oct 24, 2025
37b976b
Merge pull request #693 from richard-smith-preservica/timestamp-tags-…
joedolson Dec 20, 2025
1e8cb26
Hide transcript & description preferences if player does not have those
joedolson Dec 20, 2025
ca9dec7
Remove console.log
joedolson Dec 20, 2025
8db667f
Prevent descriptions from firing when media not playing
joedolson Dec 20, 2025
4f11091
Avoid repainting icons when unchanged
joedolson Dec 27, 2025
c3cd4b8
Add a new method to fetch translations, with support for fallback.
joedolson Dec 28, 2025
a29b72d
Apply big play on background and background color.
joedolson Dec 28, 2025
78948a2
Make Cookie.js an optional dependency, and use localStorage by default
joedolson Dec 28, 2025
1d14cbf
Remove screen reader only text from buttons
joedolson Dec 28, 2025
4be3ec9
Big play button shouldn't have border radius
joedolson Dec 28, 2025
a917047
Add mechanism to view translations in demos
joedolson Dec 28, 2025
3c2cac4
Remove JS sizing to define player width and height
joedolson Dec 28, 2025
33758cf
Make player type aria-label a translatable string
joedolson Dec 28, 2025
2586e95
Add support for an audio poster image.
joedolson Dec 28, 2025
e082170
Add poster image demo to index
joedolson Dec 28, 2025
fb48cbd
Invite people to contribute financially to Able Player
joedolson Dec 28, 2025
bbf5c65
Add support link to docs header.
joedolson Dec 28, 2025
c94be4a
Update funding info to be current.
joedolson Dec 28, 2025
1dc4515
Move API docs to a notes file in docs instead of JS files.
joedolson Dec 28, 2025
3437d38
Add docs about array elements in geticons
joedolson Dec 28, 2025
5f7b138
Add support for a fixed location for sign language video
joedolson Dec 28, 2025
dd8689d
Update package-lock.json
joedolson Dec 28, 2025
f63c909
Adjust caption styling to center.
joedolson Dec 28, 2025
b2582e2
Rename vars to reflect that they may not be cookies
joedolson Dec 29, 2025
a693ef9
More cookie var renaming
joedolson Dec 29, 2025
9e30126
Improve draggable window positioning
joedolson Dec 29, 2025
596c617
Replace $.ajax with fetch in tracks
joedolson Dec 29, 2025
0a2011c
Begin process of removing jQuery by supporting jQuery slim
joedolson Dec 29, 2025
fd00c08
Update fadeout/in to use CSS transitions
joedolson Dec 29, 2025
8e46268
Update comments to reflect change
joedolson Dec 29, 2025
ffef8fa
Change translations to fetch async await
joedolson Dec 29, 2025
eb816bb
Show needs to happen before hide, not simultaneous.
joedolson Dec 29, 2025
493c21f
Swap jQuery deferred to custom prototype
joedolson Dec 30, 2025
1678dd6
Update docs to reflect changed dependency & update demos to use the s…
joedolson Dec 30, 2025
2b33a4c
Missed file save in deferred changes
joedolson Dec 30, 2025
4d4f887
Eliminate some unused code
joedolson Dec 30, 2025
ac831d7
Merge pull request #709 from ableplayer/jquery-slim
joedolson Dec 30, 2025
fa3ae30
Replace jQuery getScript
joedolson Dec 30, 2025
4d3fd84
On Safari, YouTube automatic posters don't show. This is a known Safa…
joedolson Dec 30, 2025
b92a105
Merge pull request #711 from ableplayer/jquery-slim
joedolson Dec 30, 2025
9cee3c8
Remove some additional unused variables.
joedolson Dec 30, 2025
360b5eb
Merge branch 'develop' of https://github.com/ableplayer/ableplayer in…
joedolson Dec 30, 2025
61c9277
Function doesn't use the YouTube ID argument.
joedolson Dec 30, 2025
7c95772
Remove hide callbacks & change draggable to be a more explicit region.
joedolson Dec 30, 2025
d75d394
Design adjustments to resize and drag handles
joedolson Dec 30, 2025
35f3dd8
Unused var
joedolson Dec 30, 2025
f366acf
Set transcript language order; design adjustments.
joedolson Dec 30, 2025
8b6bcaa
Invalid value passed to getYouTubePosterUrl
joedolson Dec 31, 2025
edda545
All YouTube videos have 640, not all have hd.
joedolson Dec 31, 2025
661ccfb
Assign poster as background to bigplaybutton
joedolson Dec 31, 2025
b2641d2
Remove code that enables poster with YouTube player
joedolson Dec 31, 2025
0214f1f
Remove unused variable, minor changes to comments
joedolson Dec 31, 2025
4127407
Remove setFullscreen(false) when rebuilding player
joedolson Dec 31, 2025
c7c6d7f
Remove references to the helpDialog, which hasn't existed for at leas…
joedolson Dec 31, 2025
3847046
Add preference enabling users to disable custom keyboard shortcuts
joedolson Dec 31, 2025
de99c87
Set border-box sizing on chapters buttons
joedolson Dec 31, 2025
5157e44
Add setTimeout to resolve promise if no captions found.
joedolson Dec 31, 2025
3b5ef73
Simplify AccessibleDialog, remove fullscreen polyfill
joedolson Dec 31, 2025
cb17466
Adjust and restore sign and transcript windows for fullscreen
joedolson Dec 31, 2025
733e64f
Remove right margin on checkbox label in draggables
joedolson Jan 1, 2026
d6dc0c3
Update VTT parsing to handle cues as individual inputs.
joedolson Jan 9, 2026
7228330
Remove debugging
joedolson Jan 9, 2026
c71301c
Ensure that positioning $window doesn't happen if it isn't present.
joedolson Jan 9, 2026
31a2e37
Bump VTS notice to 10 seconds.
joedolson Jan 9, 2026
0d2cc31
Tweaks to VTS alert styles
joedolson Jan 10, 2026
fe8d4a8
Fix todo comment text
joedolson Jan 10, 2026
359ba86
Enhance translations by supporting variables in translated strings
joedolson Jan 10, 2026
efe82f5
Localize VTS
joedolson Jan 10, 2026
b54a833
Accidentally removed entire tr.
joedolson Jan 10, 2026
f77d5ee
Pass data.text where trackText used to be.
joedolson Jan 10, 2026
4849653
Update comment
joedolson Jan 10, 2026
8b37b9f
Add VTS translations to language files.
joedolson Jan 10, 2026
bee61bb
Some comment improvements
joedolson Jan 10, 2026
ebc1f30
Merge pull request #712 from ableplayer/develop
joedolson Jan 10, 2026
e6d24bd
Update video5.html
joedolson Jan 10, 2026
21cc20d
Styling fixes for search2
joedolson Jan 10, 2026
1d813f5
Text fix now that YouTube is supported without captions
joedolson Jan 10, 2026
39e9367
Commit build files
joedolson Jan 10, 2026
811f573
Merge pull request #716 from ableplayer/develop
joedolson Jan 10, 2026
a04fe82
Update changelog.md
joedolson Jan 10, 2026
802287a
Merge pull request #717 from ableplayer/develop
joedolson Jan 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ The MIT License (MIT)

Copyright (c) 2014-2025 The Able Player Contributors

Able Player development is supported in part by The AccessComputing project,
with financial support from the National Science Foundation
(grant #CNS-0540615, CNS-0837508, and CNS-1042260);
Able Player development was supported in part by The AccessComputing project until 2025,
with financial support from the National Science Foundation
(grant #CNS-0540615, CNS-0837508, and CNS-1042260);
and by the Committee on Institutional Cooperation (CIC).

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
36 changes: 28 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,10 @@ Since the release of version 4.4, we are no longer supporting Internet Explorer.

- *Able Player* uses [jQuery][]. Version 3.5.0 or higher is recommended.
The example code below uses Google’s hosted libraries; no download required.
- *Able Player* uses [js-cookie][] to store and retrieve user
preferences in cookies. The example code below uses CDN’s hosted libraries;
no download required. All Able Player cookies are functional cookies.
- *Able Player* optionally can use [js-cookie][] to store and retrieve user
preferences in cookies. By default, preferences are stored in localStorage.
The example code below uses CDN’s hosted libraries; no download required.
All Able Player cookies are functional cookies.
- *AblePlayer*, as of 4.5.1, requires the use of the DOMPurify sanitizing library.
- The default files in the root of the `/build` directory have DOMPurify bundled in.
- Alternatively, the `build/separate-dompurify` directory houses copies of the AblePlayer files with AblePlayer code only and a stand-alone copy of the current version of DOMPurify that the project is currently using. These files are available for those who want to load DOMPurify via a separate file or want to use a CDN hosted version.
Expand Down Expand Up @@ -135,9 +136,17 @@ Fallback content can be tested by adding the **data-test-fallback** attribute to

Copy and paste the following code into your web page. This code applies to all use cases, both audio and video.

Able Player works with either jQuery or with the slim build of jQuery, which is about 6 KB smaller gzipped.

Able Player does not require cookies, but you can add the js-cookie package to save preferences as cookies. Otherwise, preferences are saved in localStorage.

```HTML
<!-- Dependencies -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
or
<script src="https://code.jquery.com/jquery-3.7.1.slim.min.js"></script>

<!-- Optional Dependency -->
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>

<!-- CSS -->
Expand Down Expand Up @@ -192,6 +201,13 @@ The following attributes are supported on both the `<audio>` and `<video>` eleme
- **id** - required; any unique ID
- **data-able-player** - required

### Audio Poster

Video poster images are supported using the `poster` attribute on the video element. The audio element does not support a poster image, but you can add an image to your player using:

- **data-poster** - A URL to an image.
- **data-poster-alt** - The alternative text for the image.

### Optional; General-Purpose

- **data-debug** - optional; if present will write messages to the developer console
Expand Down Expand Up @@ -226,7 +242,7 @@ The following attributes are supported on both the `<audio>` and `<video>` eleme
### Captions

- **data-captions-position** - optional; specify default position of captions relative to the video (either "below" or "overlay"; "below" is the default if not specified). Users can override this setting in Captions Preferences.
- **data-state-captions** - optional; "on" or "off". Captions are on by default if they're available, but this allows website owners to override that setting. If users enable captions, their preference will be saved in a cookie, and that will override the default setting on future visits.
- **data-state-captions** - optional; "on" or "off". Captions are on by default if they're available, but this allows website owners to override that setting. If users enable captions, their preference will be saved, and that will override the default setting on future visits.

### Transcript

Expand Down Expand Up @@ -356,7 +372,7 @@ In such cases, use `data-descriptions-audible="false"` to prevent browsers and s

If description is available through either of the above methods, it is off by default and users must enable it using the "Descriptions" button on the player control. Website owners can override this setting and change the default state to "on" using `data-state-descriptions="on"`. Also, website owners can define the default state of extended descriptions (i.e., pausing the video during audio description) using `data-desc-pause-default`. Supported values are either "off" or "on".

Setting this to "off" is useful if all videos have plenty of audio space for description to be read, and pausing is therefore unnecessary. The default setting is "on". If users have changed this setting in the Description Preferences dialog, their preference will be saved in a cookie, and that will override the default setting on future visits.
Setting this to "off" is useful if all videos have plenty of audio space for description to be read, and pausing is therefore unnecessary. The default setting is "on". If users have changed this setting in the Description Preferences dialog, their preference will be saved, and that will override the default setting on future visits.

### Sign language

Expand All @@ -374,6 +390,10 @@ If a sign language version is available, a sign language button will be added to

Unfortunately this feature is not supported on iOS.

#### Load Sign Language in a fixed location

By default, the sign language window is launched in a movable dialog. To set it in a fixed location on the page, add `data-sign-div` with the ID of a container on the page. The sign language window will be inserted into that container, and will not be movable.

### Playlists

An *Able Player* playlist is an HTML list of tracks. A playlist can accompany either a video or audio player, but both audio and video cannot be combined within a single playlist. The list can be either ordered (`<ol>`) or unordered (`<ul>`).
Expand Down Expand Up @@ -593,7 +613,7 @@ By default, keyboard shortcuts must be accompanied by Alt + Control.

## User Preferences

One of *Able Player’s* accessibility features is that the player is highly customizable by users. The controller includes a Preferences button that allows users to change default preferences and settings. Their changes are stored in a browser cookie and in most cases should therefore be preserved the next time they visit the site. Specifically, users can control the following:
One of *Able Player’s* accessibility features is that the player is highly customizable by users. The controller includes a Preferences button that allows users to change default preferences and settings. Their changes are stored in their browser, and in most cases should be preserved the next time they visit the site. Users can control the following:

- Modifier keys: Add *Alt*, *Ctrl*, or *Shift* to the Able Player keyboard
shortcuts to avoid conflicts with other applications.
Expand All @@ -608,8 +628,8 @@ One of *Able Player’s* accessibility features is that the player is highly cus

## Acknowledgements

- Able Player development is supported in part by the [AccessComputing][] project at the University of Washington, with financial support from the National Science Foundation (grants #CNS-0540615, CNS-0837508, and CNS-1042260).
- Additional support has been provided by the [Committee on Institutional Cooperation][] (CIC).
- Until 2025, Able Player development was supported in part by the [AccessComputing][] project at the University of Washington, with financial support from the National Science Foundation (grants #CNS-0540615, CNS-0837508, and CNS-1042260).
- Additional support was provided by the [Committee on Institutional Cooperation][] (CIC).
- Turtle and rabbit icons (available as optional alternatives for the speed buttons) are provided courtesy of [Icons8][].
- Sample video tracks are provided courtesy of [The DO-IT Center][] at the University of Washington. Additional videos are available on the [DO-IT Video][] website, which uses Able Player.
- Sample audio tracks feature songs by Terrill Thompson, Able Player's creator and original lead developer. Check out [Terrill's music site] for more listening, and to support his work.
Expand Down
3 changes: 2 additions & 1 deletion _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
<nav>
<ul>
<li><a href="{{ site.github.url }}">Documentation</a></li>
<li><a href="{{ "/contributing.html" | prepend: site.github.url }}">Contributing</a></li>
<li><a href="{{ "/contributing.html" | prepend: site.github.url }}">Contribute</a></li>
<li><a href="{{ "/changelog.html" | prepend: site.github.url }}">Changelog</a></li>
<li><a href="{{ "/demos/" | prepend: site.github.url }}">Demos</a></li>
<li><a href="{{ "https://www.joedolson.com/donate/" }}">Support</a></li>
</ul>
</nav>
{% if site.show_downloads %}
Expand Down
Loading
Loading