I officially took over maintenance of Able Player, the accessible media player, on May 6th, 2025 – just a little over a year ago.

A year has passed, and I feel like it’s time for an update on where things stand!

From a code standpoint, it’s going great! I’ve released three major updates so far, and have just published the release candidate for the next major release. I’ve made a lot of changes, large and small.

Able Player wordmark

  • Version 4.6.0, released in June 2025, was focused on updating the HTML (HyperText Markup Language), going through the backlog of bug fixes and accessibility improvements, and working on updating the documentation and demos.
  • Version 4.7.0, released in September 2025, made significant steps in modernizing the default CSS (Cascading Style Sheets), improved responsiveness, fixed a host of additional bugs, and started updating some characteristics about how translations are handled. It also updated how ableplayer.dist.js was built, reducing it in size by 150Kb.
  • Version 4.8.0, released in February 2026, made cookies optional; added support for poster images on audio players; added a method for handling translations, to make those easier to manage; added more fixes to accessibility and responsiveness, and reduced the jQuery dependency to only require the ‘slim’ build of jQuery.

And now I’m releasing version 5.0.0, currently in its release candidate phase.

What’s coming up in 5.0.0, and what happened to 4.9.0?

My original intention was to dedicate version 5.0.0 to removing jQuery. However, a developer from the Smithsonian, Vanessa Phipps, volunteered to take on adding support for Able Player via script modules and preparing it for publishing to NPM as a task. All my thanks for taking on this job!

Able Player can now be installed from the NPM repository using npm i ableplayer.

That was an awesome task to take on, but also constituted a large change, and some of the changes are definitely breaking to certain use cases. As a result, I decided to skip 4.9.0 and release this version as an API (Application Programming Interface) breaking change, which opened some opportunities to make some other breaking changes I wanted to implement.

This release includes the following breaking change:

  • Only the UMD (Universal Module Definition) bundles expose any functionality to the window environment.
  • data-root-path is no longer supported.
  • Translations are now bundled into the player package, and it is no longer possible to use custom translations without building your own package.
  • Icons no longer support font icons or png images, and are only available as SVGs.
  • data-icon-type is no longer supported.
  • window.AblePlayerInstances is now AblePlayer.ablePlayerInstances.
  • UMD bundles including DOMPurify no longer expose it on window.
  • Able Player internal components are no longer exposed on window: window.AccessibleDialog, window.AccessibleSlider, and window.validate.
  • Able Player now requires ES 2022, which reduces the footprint of supporting browsers from 96% to 95%.

Most of these changes will only impact you if you’re doing custom coding to implement features in Able Player.

The other major changes in 5.0.0 include:

  • Support for Spoken Captions. This is a feature targeted towards meeting the requirements of EN 301 549 7.1.5, which require the capacity for a player to announce the subtitles of a video.
  • Significant updates to translation files, removing about 15% of strings that were no longer used.

A note on package size

The package size for the main jQuery file (ableplayer.js) went from 582Kb to 880Kb, while the minified file went from 257Kb to 386Kb. This looks a lot like a significant increase in size…but that’s a bit of an illusion.

The package is actually smaller.

Prior to version 5.0.0, translation files were fetched via a series of asynchronous HTTP (HyperText Transfer Protocol) requests. That was an additional 200Kb to load asynchronously, plus the extra travel time to get the files. These files were never minified, so the minified package was actually pulling close to 450Kb.

In version 5.0.0, the translation files are built into the package, so the package size better reflects the actual AblePlayer load. The minified file is actually significantly smaller than it was before.

Am I still going to remove the jQuery dependency?

Yes! It’s now slated for 6.0, as the next semantic milestone that allows for API breakages. I expect that version 5.1 will be mostly refinements: polishing the NPM package and making smaller changes, but it’s possible that 6.0 will come soon after that.

What’s less great?

If you’re observant, you noticed that I said “From a code standpoint, it’s going great!”, which implicitly says that something else is not so great.

It’s funding. It’s always funding. So far, I’ve had no success finding any funding to support development on Able Player. To date, my total income from Able Player is sitting at $105. That’s a bit less than an hour of my time.

Update: Up to $388.47, as of June 3rd, 2026!

If you have anything to spare, it would be much appreciated.