YouTube Video fVPNBZXyGH8

## Metadata
- Author: [[YouTube]]
- Full Title: YouTube Video fVPNBZXyGH8
- Category: #articles
- Document Tags: [[00]] [[funding]] [[integration]] [[testing]] [[xref]]
- Summary: YouTube Video fVPNBZXyGH8
- URL: https://www.youtube.com/watch?v=fVPNBZXyGH8
Chris: Welcome to the Accessibility
Craft Podcast, where we explore the art of creating accessible websites while
trying out interesting craft beverages. This podcast is brought to you by
the team at Equalize Digital, a WordPress accessibility company,
and the proud creators of the Accessibility Checker plugin. And now onto the show.
Amber: Hey everybody, it's Amber
and I'm here today with Steve. Steve: Hello everyone. Amber: And our friend Joe Dolson. Welcome, Joe! Joe: Hey, really happy to be here again. Amber: Yeah, we're excited to have you
back on and maybe you can give a little introduction to yourself for anyone who
hasn't heard your previous episode or seen you around the WordPress community. Joe: Sure. So I'm Joe Dolson. I'm a WordPress core committer.
I do a lot with the accessibility
team, working on WordPress, making things better. I'm also one of the board members of
WP Accessibility Day, along with Amber Hinds, who you see right before you. And in the context of this episode, I'm
also the lead developer of Able Player. Amber: Yes, which we will be talking
about in greater detail in just a minute. For anyone who wants to find show
notes or a full transcript for this
episode, you can find them if you
go to AccessibilityCraft.com/144. Of course, we always kick off every
episode with a beverage, and normally Chris is here as our food guy to
introduce all of the beverages. He is not, I picked this one
though, so I figured that I can go ahead and introduce it. It's called the King Grackle Stout,
and it is from Texas Beer Co, which is
located in a small town Taylor, Texas,
that is a little bit east of Austin, and you can get it throughout Texas. They do have it at HEB and a
couple of other grocery stores. I don't know how much you
can get outside of Texas. But it's a cute little like craft
brewery that you can go in, hang out in. They're also really neat in that their
roof is covered in solar and all
of their beer is brewed with solar. So they promote that, they plant
trees, and do that kind of hippie dippy stuff, and it's stout, which I love. Joe, I know you're a fan of dark beer and
so I always get excited when you come on. 'cause I don't think Chris
and Steve like it as much. Steve: Nope. Joe: Alright, great. This is just for us. Steve: Yeah, this is for you. Joe: Sorry, Steve. Steve: That's fine. So the King Grackle says, with
notes of chocolate and coffee
and a rich smooth finish. This full roasted stout known
as the King Grackle boldly. What's this? It's kind of hard to read. This is color contrast issue, I guess. It boldly flies above
the rest of the flock. Cheers, y'all. So it's got a, y'all in there. Amber: Yeah, it is from Texas. Do you guys have like huge flocks of
grackles that just hang out around?
Joe: We have a lot of grackles. I mean, I don't know that I see
them in huge flocks, but like it's a pretty routine thing at various times
of the year to have like a dozen of them hanging around in my yard, so. Amber: Okay. Yeah. So that's not just a Texas thing,
they go up to Minnesota too. Joe: No. Amber: And for folks who don't know,
grackles, like a crow or a black bird. Yeah. Joe: Yeah, similar to that, definitely. And there's a nice illustration of the
grackle on this can, wearing a crown. It's, you know, old gender
bias there, but so be it.
Amber: So I've had some
of their other beer. I've never had this doubt,
so I'm excited to try it. Joe: You experienced for us for all. Amber: Yeah, so I followed the rules. I did not get something I had tried
before, but I think like, they win. I like their can illustration
style and everything. Joe: It's pretty! Amber: Their website's not super great. Steve: Yeah. Amber: If we were giving them an
accessibility score, it would not be high. Steve: I mean, the can's kind of hard
to read 'cause like it's all metallic. Like the whole can's got this
metallic reflection to it.
Amber: All right, we're gonna open
this up and see what everybody thinks. Joe brought a glass so
we can see the pour. How would you describe that, Joe? Joe: It's a really, it's a minimal head. But it's, you know, it's got a continuing
rise to it, so it's pretty deep. It's really dark. Amber: Yeah, it's actually
growing quite a bit. Even as it stopped pouring. Joe: I know. Steve: Yeah. Amber: Yeah. And it's got a nice dark color
and like a caramel brown head.
Joe: Yeah, so it's a
nice nice caramel brown. I think that's a good
description of the color. The actual beer is, I mean, that is black. I mean, it's got a bit of brownness
to it, but wow, that is dark. Amber: What do you think, Steve? Are you afraid to try it or are you
like, okay, maybe it'll be fine. Steve: I mean, I'm not afraid,
but I know it's gonna be nasty. Amber: I love it. I don't know. Steve: I mean, it's
strong on the nose too. Amber: I think it smells good. Steve: Yeah. Joe: The nose to me gives a little bit
more like cocoa nibs than chocolate,
but, a little bit more bitter. Amber: Yeah and I get more
cocoa, chocolate smell than I get like coffee, which sometimes
stouts are too coffee for me. So I kind of like that. All right. I'm gonna taste it. Joe: Yep, it's time. Gotta work my way through the head. Amber: Oh, I love this one. Steve: It's not as bad as
I thought it was gonna be. Joe: Steve's just
learning he's got a bias. Oh, I do. Steve: I fully admit that
It's not bad. Amber: It's not heavy. Joe: No, this is pretty... Amber: Is your problem with stouts
that sometimes they feel too heavy? Steve: Yeah. Yeah. Joe: This is good. No it's fairly bitter
for a stout, I think... Amber: But it has a little bit
of a like sweet layer to it. Joe: Oh yeah. Amber: But it does leave a little
bit more of a hoppy flavor on the end than you might expect. But they do say on their website that
it has a hint of tropical hops as well.
So maybe it's like the stout that
they tried to make for IPA fans. Joe: Yeah, it could be. I'm not totally sure what
the qualifier there is. Like, is it that it's got lots of hops
taste a hint of which is tropical. 'Cause I would say this is
certainly more than a hint of hops They are definitely, this is
hops, there's no question. Whether it's got a tropical hint to it.
Honestly, I don't think I have the palette
for distinct hops to be able to even say. Amber: So I was thinking about this
the last time that you came on, I think we tried like a coconut stout. Joe: Yes we did. Amber: And I was bummed because I think it
was not as coconutty as I would've liked. Joe: What I remember is it
had a definite nose then like nothing on the actual palate. Amber: So how would you compare this? 'Cause they're saying tropical hops,
I'm like, is that what the coconut is?
Steve: Yeah, I dunno what that means. Joe: Do they literally mean hops
that are grown in the tropics? 'Cause there are all sorts of
different varieties of hops. I'm not familiar with them all. They all have slightly
different flavor palates. So they might just mean it's a
particular type of hops if what they mean is it has some kind of tropical
fruit flavor, no, that's not there. And, but... Amber: I think it's got like
a nice, rich, forward flavor. Joe: It does, and I wouldn't want
it to have a tropical fruit flavor.
That is not a flavor I want in my stout. Amber: Yeah, definitely not. Joe: Pineapple. Amber: So we have this, very technical
rating of where you can give things, thumbs up, and of course you have two. So you can, you know, like mix and
match if you want, but like, it's like, thumbs up, thumbs the middle down. Two, one. Where do you land on this, Joe? Joe: I think it's a good. Amber: One sideways and one thumbs up? Joe: Yeah. I mean, it's good. I kind of like to have a certain
smoothness to stout that I'm not
sure I'm really getting here. It's got a really bright flavor,
which is maybe to me a little bit more, it's a little more IPA ish. It's probably really just
the creation of the hops. It's fine. It is not, like, this is not a
criticism, it's just like, maybe not what I immediately want out of a stout. Amber: Yeah. What about you, Steve? Where do you land on this? Would you buy it again or drink it again? Steve: Well, no, but I mean, I'll... Joe: That's straightforward. Steve: Yeah, yeah. I'll rate it. I mean, I kinda give
it two thumbs sideways.
And as far as stouts that we've done
it's definitely, on the upper end of some of the other stouts we've done. But the bitterness does
linger for quite a while. But I mean at first it's not bad. Like some of the stouts I've drank and
they hit you pretty hard right away. And this one's not bad at first, but
it's that aftertaste that hangs around for a long time, that kind of gets me. Joe: Yeah, it's kind of, you
know, there's a reason I don't really drink, like double IPAs.
Amber: Yeah. Joe: Yeah, just, I don't enjoy that. Amber: Definitely, in the flavor that
hangs out, I don't think it's just hops. I get like that cocoa nib,
cocoa kind of bitterness. Joe: Yeah. That's definitely there too. Amber: And Steve knows, because
we've talked about this, I like really dark chocolate. Like I have an 85% bar in
my desk drawer right now. Sometimes I'll have like 90%. And it is really bitter. And the flavor that I think of
that stays lingers in my mouth
with this is very similar to that. Like it does have that
coco underlying flavor. Joe: Yeah, that cocoa nib. I like the fact that the cocoa
nib came out in the nose, but then also comes out on the palate. Like it's it's not just, it's unlike
that coconut thing where you're like, oh, hey, there's some great coconut nose. I'm gonna enjoy that. No, you're not. It's done. Amber: Like, I definitely like it. I don't think it's like my
absolute favorite, so I'm not
going for that double thumbs up. Joe: So I have to ask a question
about the rating system. Is one thumbs up higher or lower than
a thumb up with a thumb sideways? Amber: I think it's higher. Joe: Oh, see, I lower... Amber: You're like edging
towards the middle there. I'm solidly above in the middle. Joe: I'm taking a thumbs up
and I'm adding a middle thumb. Amber: A half point? Steve: Oh yeah? Amber: I don't know. Joe: I was thinking of it as like... Amber: We need to work
on this rating system. Steve: I did two sideways,
two thumbs sideways. Wouldn't that equal one thumb up?
Joe: You know, in waiting you gotta figure
like, oh, if any thumb up has to be worth, you know, that's distinctly positive. Whereas the sideways two middle votes
shouldn't be equal to one high vote. Amber: Yeah, I dunno. Steve: I'm gonna, I'm gonna... Amber: We're gonna have
to figure this out though. Joe: Ranked choice voting in the
beer ranking system so that we can really, you know, be scientific. Then somebody will have to step
away and tally those votes, because that's a complicated. Amber: So, we're talking about, and I
know I'm pretty sure on this podcast, I
have said this for a year, but I swear in
2026, we were going to redo our website. Joe: Yeah. Amber: Oh, Steve said yes! You heard it, Joe? Joe: Yeah. Amber: And everyone listening heard it. Okay, we're going to redo our
website and one of the things that we're gonna do is we're gonna move
Accessibility Craft episodes into our website, and I wanna make like the
drink rating visible on the front. And so I think we're gonna have to
answer this because we might output
thumbs up in the middle, thumbs
down with like emojis or something. But it's gonna be saved as a number. Steve: Yep. We'll make it scientific. It's Joe: gonna have to equal something. Steve: We're gonna build an application. Amber: So it'll become more
scientific than it has been. In the very beginning, we were
just like, would you buy it again? Yes or no? And then we were like, well, I mean, we
need to, you know, rank them a little bit. Yeah. Well, let's transition over. Do you wanna introduce our topic, Steve? Steve: Yeah. We have Joe here today, so, of
course I think we should spend some
time talking about his Able Player. So, Joe, can you summarize for
us, what the Able Player is and why it is a unique media player. Joe: So Able Player is a JavaScript
library for playing video. And it's a very much an
accessibility first product. So an awful lot of media players when
they build themselves as accessible, what that really means is all of our
controls are, you know, accessible to a
keyboard and to a screen reader and you
can turn things on and off and you can play it and you know what's going on. And that's pretty much
where they tend to stop. It might support captions and
subtitles because internationalization is obviously also important. But Able Player is really all
about trying to make the media itself as accessible as possible. So it's just got a ton of additional
supports for all sorts of.
Really useful features
that somebody might need. And it's honestly the accessibility
first nature means it's prioritizing accessibility. If I need to make some kind of HTML
structural change because I need to improve some accessibility issues,
I know that's going to have, down the road consequences for people
who are doing custom CSS and custom styles and whatnot, and tough. Accessibility first, so
that needs to be fixed. And if you have to change your styles,
then you have to change your styles.
And that's something that like, you know,
we, in the WordPress world, we really fight against being able to do that. And it's really nice to have a product
where it's like, yeah, that is the priority and everything else is secondary. Amber: What are some of those bigger
gaps that maybe people don't think about in media and media players? Beyond just, is it a button? The play button? Joe: Yeah. I mean, there's a lot of things
surrounding like, can you use
the scrubber to move forward 10
seconds, to move back 10 seconds? Is it gonna notify you what's
going on and where you've changed? There are things like having options,
Able Player has a lot of options so that the user can control things like,
you know, the font size and color for captions so that they can adjust
preferences, move things around. These are really useful.
And then of course, like there's the
really big features, things that Able Player offers, like synchronized sign
language, like generating an audio description from a VTT file, which, very
few players have even attempted to do. And certainly like generated audio
description is not as good as, you know, actually having a separate
video that's audio described. But it's an enormous amount cheaper
to produce and it's a much easier way of getting some audio description
into a video that otherwise, like,
you made this five years ago, it's
still an important video, but bringing somebody into re-edit it and figure
all of that out, that's a lot of work. And it supports both. I mean, you can have it set up to use a
separate audio described video or just have that as generated from VTT which
it will do, via the web speech API. Amber: Have you ever thought about
integrating, and I don't even know if this is possible, but I'll be totally honest.
A client asked me this earlier today
and now I was like, oh, I have Joe here. Maybe Joe has ideas about
this or has looked at this. Do you know if there's any way
to integrate with AI to have it, watch videos and then write like
a text description of the video? Joe: I mean, I don't know one off the top
of my head, but I'm sure it's possible. I will say that when you're talking
about audio description, I'm seeing that as rife for hallucinations because
you're taking what AI does in terms
of interpreting images to like produce
alt text and then taking that up a massive scale in terms of the number
of actual frames they're looking at and observing changes in those frames. And I'm like what is it
going to come up with? Amber: So probably not a coming
soon feature in Able Player. Joe: No. I mean, certainly not in Able Player. No, that's not coming anytime soon. And uh, I would be interested to see
if somebody was working on that and see what it was actually producing.
'cause I feel like that
could really get interesting. Amber: Yeah. Well I'll have to let you know 'cause
I have this on my, I have to research this and get back to the client list,
so I'll let you know what I find. Joe: No, I have not taken any steps
to integrate AI into Able Player. I mean, honestly, that's just,
not anywhere on the roadmap. It's not something that
feels super practical. 'cause when it comes to things
like producing captions and that sort of auto transcription stuff,
like that's a solved problem.
Everybody's doing that. There's no point in my putting a bunch
of work when it can generate those files. This is more about an interface and
I'm not sure there's a whole lot of need for AI in the interface. Like... Steve: Yeah. Joe: That should be human determinant. Steve: Yeah, I think we've kind of had
some of the same conversations around AI and our plugins as well about, you
know, it's the cool shiny thing to do and you wanna announce this AI feature
for marketing buzz or something. But when you're dealing with
accessibility, a lot of times you're
trying to think, does this actually
help solve something other than Joe: Right. Steve: Marketing buzz, right? Joe: Right, exactly. And I mean, I've done a lot of
thinking about AI and how it actually interacts with the process
of trying to say, identify problems. And to me, the basic challenge is when
you're writing a set of test sequences, which obviously you do all the time for
Accessibility Checker, you are making very specific decisions about what is
this testing for, what is it finding?
And they're gonna be self-consistent. Like it's always testing the same things. It's always checking the same things. When a human is doing it, they're going
to be less consistent because they maybe don't always remember every single detail. But they can also cover cases that
are not covered by those tests. AI is kind of like an untrained user
with an incredible amount of automation.
But it has no judgment. If you take it on say a page
where there's a hundred color contrast issues, it's not gonna
use one rule set for all of them. It's going to use a different
rule set for every single test, based on whatever context. Amber: So there's no consistency. Joe: It takes your automated tests,
but makes them hopelessly inconsistent. Steve: Right. Joe: And I feel like from a
service perspective, that's not doing anybody any good. Steve: In a player like Able Player
or like Accessibility Checker, I think
there's a case to be made for it being
an assistant of sorts, but I still think that there still needs to be a human
in line and especially in the final application of whatever's being done. Cool, so you mentioned that Able
Player was a library, so for our guests, can you give a little
bit of more clarity around that? 'Cause I know you have a WordPress
plugin of it as well, so I just, can you expand on the applications of it? Joe: So I mean, it's basically just
a gigantic pile of JavaScript.
I think it's something like 9,000
lines of JavaScript that are doing all of these miscellaneous features. But it can be packaged into context
to do playing of various things. I'm aware, I know that obviously
I run the WordPress plugin. There's also a Drupal add-on for it. Drupal module. I know it's been incorporated into
something that I can't remember the name of, which is a custom browser
used for administering tests.
And they use Able Player,
which has been like, I've had to do some support for them. Because, there are some really weird
things that happen with, 'cause this browser is super, super locked down
because everything has to be secured so that the user can't see the answers,
can't inspect anything, can't leave the browser to go, find answers. It's a funky tool. So yeah, I mean, it can be used
to play any media within the
parameters of what it supports. You know, any common, standard media
format hosted locally or YouTube or Vimeo. I haven't explored supporting any
other services because frankly I've only got so much bandwidth. Amber: So on our Accessibility
Craft website, we host our podcast episodes on Castos. But I looked into their podcast player
for embedding just like the media, the audio player, and it was really bad.
So we use Able Player on there,
because you can put a source URL and it'll take it off any URL. Joe: Yeah. Anything that can just take a direct URL
to the file and it'll just be served by the whatever that host's file system is. It can handle that. I think the key things about
like Vimeo and YouTube is that they don't provide that. You have to interface through their player
APIs which makes things more complicated. It's definitely easier if you
can just get a source, URL. Amber: So I wanna talk a little
bit more about you taking over this
project and all that stuff, but we're
gonna have a quick commercial break first, and then we'll be right back. Joe: Let's do it. Steve: This episode of Accessibility
Craft is sponsored by Equalize Digital Accessibility Checker, the WordPress
plugin that helps you find accessibility problems before you hit publish. Thousands of businesses, nonprofits,
universities, and government agencies around the world trust Accessibility
Checker to help their teams find, fix, and prevent accessibility
problems on an ongoing basis.
New to accessibility? Equalize Digital Accessibility Checker is
here to teach you every step of the way. Whether you're a content creator
or a developer, our detailed documentation guides you through
fixing accessibility issues. Never lose track of accessibility again
with real time scans each time you save, powerful reports inside the WordPress
dashboard, and a front end view to help you track down hard to find issues. Scan unlimited posts and pages
with Accessibility Checker Free.
Upgrade to Accessibility Checker
Pro to scan your website in bulk, whether it has 10 pages or 10,000. Download Accessibility Checker today at
EqualizeDigital.com/accessibility-checker. Use coupon code AccessibilityCraft
to save 10% on any plan. Amber: So this is a open
source project with the GitHub repo and a WordPress plugin.
I'm curious what motivated you to take
over maintaining and do you do both the plugin and the open source repo? Joe: Yes. So, yes I do both the WordPress
plugin and the open source repo. Basically, I took over everything that
the original project creator Terrell Thompson had previously maintained. And so he had created the original
version of the WordPress plugin. And I actually took over the WordPress
plugin almost two years ago voluntarily.
I just asked him, hey, can I work on this? And that honestly was mostly
because we wanted to use it for WP Accessibility Day, and it needed
some improvements and changes for us to really be able to do that. And honestly, the use of it for WP
Accessibility Day was a significant part of my motivation for taking over
the project because there were things I wanted to do and I wanted to move forward. And I was, trying to track those
issues and do them on the GitHub and I could see that nothing was happening.
And so I reached out to Terrell
to be Hey, if you want help, I'd love to help this out. And he said, yeah, I'd
love to have some help. And then a year passed and nothing
had happened and he reached out back to me and said, would you be
interested in taking the project over? Because he basically, he
just doesn't have time. He's currently the Head of
Accessibility for the University of Washington's web team.
I can't remember the exact title. So, that might not be exactly accurate,
but it's, you know, close enough. And so he's leading their push to
get their Title II ADA compliance in place, which obviously has
to be done by April, 2026. It's been a really hard push. It's been really long and he just
didn't have time to maintain it. And so I was like, yeah,
I'll take that over. 'Cause I really want to improve it. I really like the project and it's
kind of unique in that there are other
video players out there that have some
of these, at least some of these same features, but they're pretty much all,
like, they may have an open source aspect, but then the more accessibility focused
features are part of a paid package. Amber: Whereas this is 100% free. Joe: This is a hundred percent free. Now figuring out how to get funding
for it is obviously a challenge that I would like to try and address
because I don't know how long I can
maintain it a hundred percent for free. It is complicated and have a lot of
things I wanna do, but that is part of the challenges of the open source
world, figuring out how to fund things. Amber: Yeah. For sure. I will shout out for people if you
wanna see the video player in action. I feel like WordPress Accessibility Day's
archive sites are a really great example. Like if you go look at 2024, you can
find examples where it's got captions, it's got transcript, it's got the
synchronized sign language interpretation.
Is the being able to move the window
around, is that part of Able Player or did you do that special just for us? Joe: That's part of Able Player. It's incredible, some of the stuff
that's built into Able Player. There's even, there's a captions
editor built into Able Player. Amber: Oh, I didn't know that. Joe: Yeah, it's not enabled by default. 'Cause I mean it's not really useful
to most users, but it's actually it's intended as a sorting tool. Because if you're doing the
combination of, you have you know, your captions file and you have
audio description and you have like a
metadata track that is running events. Because that's kind of one of those cool
things, you can have a metadata track that triggers various events during
the playback which is kind of fun. But if you do that, sometimes the
timings need to be kind of massaged. So what this will actually do is it'll
generate a combined caption sheet, basically a table that contains all of the
captions from everything sorted by time. And then you can just kind of move
them around, adjust them, insert more
and then you can generate the new
caption files from the updated version you've manipulated in the browser. Amber: Wow. Steve: Wow. Joe: It's kind of cool. Steve: That is pretty cool. Joe: Like it's a great way of making
sure that your audio description is actually, has enough time to play and
that it's happening at the right time so that it's like it's between a break
or something rather than like right in the middle of somebody's sentence. Yeah, it's cool.
It's a neat tool. Amber: Not in the WordPress plugin? Joe: It's in Able Player. So if you... Steve: It's from the front end, right? Amber: Oh. Joe: Yeah. Amber: So it's possible
with the WordPress plugin. Steve: So when you took over the project,
uh, what was that transition process like? I mean, it sounds like it went pretty
smooth, and since then, are there any big changes that you've made, or are you just
getting your feet wet with the code base? How's that going? Joe: No I've made some key changes.
Mostly I was fixing the laundry
list of outstanding bugs. There were a number of things of
various degrees of significance that were kind of outstanding. But I've been starting work on
really refactoring the code. And that's a big project
that's gonna take a long time. 'Cause it's, like I said, it's
thousands of lines and it's not like I'm deeply, well, I have a much
better knowledge of the code now from all the work that I have done. You know, I've gone through
every single line of the code.
I know at least pretty
much what's in there. But, you know, there's still lots
of stuff that's kind of mysterious. I will say the hardest thing
in the transition has been dealing with code archeology. And that's where I've learned
that like the style that Terrell used for development is not
great for code archeology. He tended to do... Amber: I don't even know what you
mean, what is code archeology? Joe: I need to look at this line of code
and try and figure out when was it done
and what problem was it trying to solve. It's basically, I have a bug. It's with this line of code. I'm not totally sure what this is doing,
and I need to try and look at its history to figure out what it was for, what
did it replace, what is the goal here? So that I can kind of do a better job
of trying to resolve this problem. What terrell tended to do was an enormous
amount of local work that he'd just kind of push all up in one commit. Amber: Oh. Joe: And there's a fairly good number of
inline comments, that'll document things
like, I have to do this because of X,
that's not supported by Y. So this is making up for that and that's useful. But then you'll get to a line of
code where you're like, okay, I have some kind of a bug here and
I don't know if this is related. I can't figure out what this is doing. And you go look at the commit history
and you're like, okay, so in the commit that this was added in, there
were 1200 lines of code changed. Yeah. Yeah.
Like... Steve: That's a no. Joe: So that's not gonna work for me. So it's really, there's been some of the
changes I'm trying to make have been truly difficult because I'm like, I can't really
break things down in a nice, discreet manner to figure out what's changed. Amber: Is there any like consulting
time he has available where you could just like, message him and be like,
explain what you were doing here? Or was he pretty much like, I'm
so busy and swamped, I can't.
Joe: Well, and I have asked him on a
couple things, but he had to be honest and say he couldn't really remember. Because, you know, some of these
are things that like, they were committed, you know, seven years ago. A big one was when he added support for
Vimeo and like, there's just so much stuff in that one commit that I'm just
like, anything that was from that is, is kind of a black box mystery to me. Steve: Yeah, architecting for
scale and time is definitely hard. And that's why, you know, your
architectural structure at the beginning is super important and why
breaking things off into as small
of bite sizes pieces as you can. I mean, I can't tell you how many
times I have to go to my developers and be like, Hey, it's the end of
the day, I haven't seen any commits. Like, don't keep this stuff
on your local machine. Joe: Yeah, please. I don't care if it breaks things. That's fine. Steve: Yeah. Joe: We're in alpha. Yeah, I mean, and it's not that bad 'cause
the code is mostly fairly well organized. You can, everything's kind of broken
out into separate files and that's, it's
manageable, but it is, there's some stuff
that's really complicated and desperately needs some significant refactoring
that I have taken a couple stabs at, and I'm like, yep that's confusing. Okay. We'll figure that out. But you know, I, the main things I've
been focusing on is fixing some bugs. I've added a couple of key features,
like it didn't previously support synchronized ASL using YouTube. You could only do it with local files. And so I added the ability to
synchronize with YouTube because we
needed that on WP Accessibility Day. And honestly it just makes sense. There were some serious challenges in
synchronization when you're working with one local file and one remote
file, which is what we had because they're coming from different servers,
they're loading at different paces so they didn't synchronize very well. So that fixes that a lot. And then I did a lot of redesign
work, a lot of modernizing the CSS. Making it a little easier to skin if
people wanted to make changes like that.
And this is actually not a major
problem, this mostly just got rid of thousands and thousands of linting errors. All of the translation files
were stored as .js, but all they were was a big JSON object. And I just changed them to be .json files
and that, because the JSON and JS have different linting rules, it just took
away thousands and thousands, which just made, cleaning things up a lot easier.
Amber: When you have a project that's
a JavaScript library that could theoretically be used in all kinds of
different places, do you have to take special things into consideration? Like, this has a WordPress
plug that you maintain, but you mentioned someone else has a Drupal. Joe: I do like loop the Drupal
developers into the process, whenever I'm preparing, like when I'm in beta,
I'll be like, Hey, here's the beta. Let me know if you encounter any problems. It doesn't really have a profound
impact though because the code is pretty self-contained.
It doesn't depend on a
lot of external factors. Like there's some things I'm doing
in the WordPress plugin, which make pretty significant changes
to things that WordPress produces. Like, you know, if you're just using
the WordPress video block and that block has track support for adding audio
description tracks, but doesn't have any support for producing them, you
can turn on a feature in the WordPress plugin that will just map Able Player
over your WordPress video block. And it's fine, it'll play that now.
And you don't, it doesn't, it's invisible. You don't have to, you don't see any
changes in the WordPress video block. Use it exactly as it's designed, but
it'll be played with Able Player. Amber: That's really neat. Steve: It sounds like that would be
a integration for another plugin, like for one of our plugins. That we, I'm just, that would
be kind of neat to have an Accessibility Checker, right? You know, we flag videos for certain
reasons and if there's a solution for that, you can be like... Joe: I mean... Amber: Maybe you should
install Able Player? Steve: Yeah. Or we could auto install
it, and they can apply it.
Yeah, very cool. Joe: Yeah, I mean, I know, Amber did
a lot of review of the video block a couple of years ago and, you know,
noted that like it has all this support for adding all of the different types
of tracks that video, the element actually supports, but native players
can't do anything with most of them. Amber: Yeah, the WordPress block
is great, but the native browser players are kind of crummy. Because we flagged this a
bunch in audits on websites.
A total tangent right now, but
like native elements, a lot of developers think like, oh, if I the
native browser, that's the best. And in some cases, yes,
but in other cases, no. For example, form validation, yeah, it's
super annoying if you use browser native form validation, because what happens
is it airs on the first field and it only tells you the first field is aired. And then they would fix that,
and then they hit submit again. And then it's like, oh, here's the
third field that also had an error. And then like if you have 10 errors
on a form, you have to submit 10
times to get told all of them. You know? And as opposed to if you write your
own custom validation, you can tell them, here are all of your 10 errors. Joe: I think it's an interesting
thing about like native HTML because we all, we do actually tell people
all the time that, yeah, you should use native semantic elements. This is what you should do. And it's like, but there's also a judgment
bar there where you're like, but some of them are actually not very good. Amber: Yeah, just because
it's a native video player
doesn't mean it's the best one. Joe: And not only that, it's not even
necessarily that it's not accessible like in some particular browser. It's like, well, it's inconsistent. It has different support across
every browser, and that's one of the biggest reasons for trying to use
some kind of video player library is now you've got the same player on all
of your browsers within some limits. Because like, iOS is weird. Amber: So that makes me wonder, what
are some of the biggest implementation mistakes that you see on WordPress
websites when people are embedding media?
Joe: I mean, honestly, these are probably
like the three most expected things. I don't know that there's gonna
be any surprise here, you know, it's just not having captions or
assuming that auto captions are good enough and not doing anything more. There's some interesting things
about the YouTube API, by the way, about auto captions. The YouTube API does not consider
auto captions to be captions.
So the API will not fetch them. They're not captions, they're just kind of
a make do until you have something real. But that's, anyway,
that's a bit of an aside. The other one is, not having transcripts. The number of times, like I've gone to
somebody's, you know, to some podcast they've posted, and I'm like, there's
no way in hell I'm gonna watch this, but , is there a transcript I can read? And the answer is no, and I'm done. I'm gone. Sorry.
And then honestly, using
really crappy video players. I mean, you know, both Vimeo
and YouTube are at least fairly respectable on accessibility. They will regress every once in a
while, which can be a little weird, but they're basically at least,
okay, they offer the things you need. But wow, there are a lot of players
out there that are not okay. Amber: Yeah. From like different third
party video hosting services? Joe: And I guess, if I'm gonna throw
in a fourth one, it's going to be
autoplaying videos that you can't pause. If you like, use the cover
block and put in a background video, you know, that doesn't... Amber: And hide the controls. Joe: Yeah. Well, I mean, they're hidden
by default in some browsers. Steve: They're not, yeah. Joe: You know, some browsers like,
is it Firefox that will still allow you to focus the player and then
you can get to the controls, even if it's, even if they're hidden? But most browsers, like they're
just not gonna be there. I added something to WP Accessibility
so that it injects a pause button on any auto playing videos.
Like the problems with video
tend to be really obvious. I mean , I'm fully disregarding
like content problems. 'Cause that's really a completely
separate class of issue and not one that Able Player can really solve. That's an idea, I'd use AI to
analyze the video and be like, you know, this violates the, three
flashes rule, so it just won't play. Steve: Yeah. Amber: That's the AI that you would add.
Joe: Yeah. There we go. That's all. It's checking. Amber: There's no captions. Sorry. This video can't be played. Joe: Yeah, so it's not accessible to
everybody, it's not accessible to anybody. Steve: There you go. So I don't know how far you've gone down
the rabbit hole of like all the page builders and how they implement video and
all the plugins, the many ways that video can be implemented in WordPress websites. I mean, would you say that everybody
should use Able Player over those players or are those sufficient?
Like should we be hounding
them to use the Able Player library in their page builders? Joe: Here's what I'm gonna say is I
don't, in the current state of the Able Player base code, I wouldn't
really encourage people to do that. I think it needs to be a user choice, and
that's mostly just because it's so old. And it really needs to get
through a round of updates and refinements before I think that. And that's especially just, I
feel like I'd be pushing people to include something that they would
look at the code and they'd be like
I don't know if I wanna do that. I'm like, right now, for example,
one of the big things that's on my roadmap to fix in Able Player is it
currently is dependent on jQuery. And I want to rip that out. I don't want it to be dependent on jQuery. That totally makes sense when it was
first built between 2012 and 2014, like at that time, there's a ton
of stuff that you needed that for. You don't need it anymore. And now it's this, it's a pretty
significant dependency that I
don't want to force on people. And that's gonna take a long time. Like I'm gonna do that in stages. My starting point is I wanna slim it
down so that it only is dependent on jQuery light which isn't gonna impact
any WordPress sites because they don't really in queue jQuery light,
but it just simplifies the problem. It says, okay, now I've resolved
these things, which is mostly gonna be like Ajax and deferrals. I mean, that's the main
things that's gonna change. But it just, it means I can take tackle
smaller sets of problems at a time.
Steve: Yeah, totally. I know in a lot of websites, we're
definitely looking like when we're dealing with performance problems, we're
definitely trying to evaluate, Hey, can we turn jQuery off on this page? Right? So it can render faster. Joe: Yeah. I mean, it's still a pretty
substantial package and an awful lot of what it does is really not needed. I've been practicing that by converting
all of my plugins front end code to be vanilla you know, taking smaller chunks
to be like, okay, let's just do this.
And then I will get a better idea
of what some of the problems I might encounter when I tackle this
will be so, like WP Accessibility is now jQuery free and next version
of My Calendar will be jQuery free. You know, one thing at a time. Amber: What do you think your
timeline for actually removing jQuery from Able Player would be? Joe: Well, I do have a timeline. I mean, what I have, what I set is
what version I'm going to remove it in.
Actually this is what I feel is
really important from a kind of having a removals and deprecation
policy in software is like, dates aren't actually all that useful. But versions are, and very being able to
tell people way in advance that this is the version in which this will go away. Steve: Mm-hmm. Joe: And then you could just be really
upfront, really clear, and if you need to delay that version a month so that
you can actually finish it or give people more time to try it out or whatever, fine. But it's upfront and clear.
This is, to me, this is one of the
biggest mistakes WordPress makes in core development is it is just never
willing to just say we are going to remove this , in this release. Period. Things do get removed, but they never
get removed with like lots of forethought and advanced planning and commitment. They get removed, the company finally
decide, oh, I think it's time to remove this now, so let's just do it. And I'll freely admit. I have done that
6.9, so when 6.9 comes out there
is something that I removed. Steve: Well, I mean, on the plugin side
we've adopted the three versions back. You know, we're support three versions
back, three major versions back. And you know, after that we won. I mean, we were really coding ourselves
into a corner trying to support all the way back from the point when the plugin
was made, it was like five point something and we're trying to like, we want to use
these more modern database placeholders so that the PHPCS stops hollering at us.
Joe: I totally wanna too. Yeah. Steve: Well, jumping back to 2026, let's take a time machine back into
the... you've kind of touched a little bit on what you're planning in the
future, but like, are there any other like cool features that you have on your
roadmap that you're planning on doing? Joe: I'm not currently
focused on features. I'm really focused on trying to
improve and polish what already exists to try and modernize because
that is gonna be a big thing.
And honestly, the more I add things, the
harder it is to really assess whether like I broke something by making a refactor
or broke it by adding this other feature. And honestly it, it has
such a strong feature set. Terrell put an enormous amount of
energy into building out features. So it's got lots of really
amazing, great features. What it needs is polish. So right now that's my priority. There are features that I think
could stand to be developed.
You know, a lot of them
are relatively minor. Like, you know, the ASL support
doesn't extend to Vimeo. Well, I mean, that seems pretty doable. I should be able to do that. But yeah, really I'm much more
focused on polish at the moment. There is a thing that I feel like it's
a relatively commonly requested feature that I have absolutely no background in.
That, I think it would be cool, but I
don't know anything about it, and it's about supporting streaming video, and
I'm just like, yeah, I don't really know what I would need to do to enable that. So it's definitely a back burner thing. Amber: Have you ever tried to put a
YouTube URL for a YouTube live stream into it just to see what would happen? Joe: I mean, I kind of assume that
would work because it's running through the YouTube API, I mean, it's
really the YouTube player with just
some custom controls overlaid on it. So, maybe. Amber: Interesting test, maybe I can
test that the next time Steve does a live stream for our change log. Joe: Oh, yeah. We can find that out. Amber: So, okay. I have kind of a final question and
then we definitely have to wrap up. I wanna know a little bit about how
people can contribute to this or help support the project, whether that's
through code, funding, documentation, translations, any of those things. And I'm especially interested
in when we redo our website in
2026, notice how I phrase that. Steve: Maybe. Amber: I want to start using Able
Player, but one of the things that I know that we're going to
wanna do is re-skin it, right? How do people help support this
project and where does stuff go? Joe: So I'm gonna start kind of
backwards and go back to the front. I do want the default
skin to be pretty basic. Like it's, the intention is
that, yeah, you can skin it. And one of the things that I
really heavily changed in this most recent release is transforming all
of the color to color variables.
Just to make it a lot easier to
just skin it like it's now, it's, I don't remember, it's like 19 color
variables and that can just do the entire plugin or entire player. So that is one thing. But it's all skinnable. It's all just CSS and HTML. There is a bunch of like, positioning
stuff that's being applied in JS and I am gradually stripping all of that out. Because I don't think any of
that should be done in scripting.
Like maybe there's a few cases where it
needs to be in a particular location, but mostly I just don't want that because it
just, that just makes skinning harder. If things are not gonna be
where you think you put them. So, yeah. Yeah, that's definitely a priority. One thing I did have in mind for the
WordPress plugin is actually having selectable skins so that there's just a
set of like four or five that you can just swap between and then tweak from there. 'Cause one of the things about changing
that into CSS variables is that also means I can create an interface
for managing those CSS variables.
So I can have skins that are color
that don't change the colors, but just change kind of the other
layout aspects and tweak those. One of the hardest things though, is
actually trying to maintain the control size rules, but also be attractive. Otherwise, I mean, so in terms of
supporting the plugin you know. Testing is always valuable
because I am working on a relatively aggressive timeline.
I'm trying to get a new release out every
three months which, you know, working by myself unfunded is pretty aggressive. And that does mean I really depend
on people actually installing the betas and working with them. There's a reason I keep installing
the beta on WP Accessibility Day. It's because I get to see, okay,
did I cause myself any problems? So, you know, that's really valuable. Code contributions, especially
when it comes to this whole process of removing jQuery support.
That's gonna be complicated. I mean, there's a huge amount of stuff
there that's really dependent on just everything as a jQuery object and I
need to change everything into elements. And so like, yeah, it's gonna
be a, that's gonna be a process. And it would be really great
to have help with that. And obviously there's funding. If anybody wants to become a new
GitHub sponsor for me with the specific idea that they're funding
Able Player, I would love that. Currently I have earned absolutely
nothing from it and have no
monetization of any kind. And obviously that's got
limitations for sustainability. I can only go so far. Amber: Where can they find you on
GitHub, Joe, if they wanna sponsor you? Joe: Well, you can find me
at GitHub.com/JoeDolson. You can also go to JoeDolson.com/Donate,
where there'll be a link to my GitHub sponsors page and also a link to
PayPal where you can just make a direct donation to help support me.
So, I would certainly greatly
appreciate all of that. Any support you can
give is really valuable. You know, I do have a reasonable
level of sponsorship to help contribute to WordPress, but that
does nothing to fund Able Player. And I would love to be able to put
more time and attention into it. Amber: Yeah. Steve: Awesome. Well, it's always a pleasure Joe, to have
you on the podcast and enjoy a nice stout beer and to hear about all the hear
about all the awesome work you're doing.
We appreciate it. Joe: Thank you so much. Amber: Thank you. Chris: Thanks for listening
to Accessibility Craft. If you enjoyed this episode, please
subscribe in your podcast app to get notified when future episodes release. You can find Accessibility Craft on
Apple Podcasts, Spotify, and more. And if building accessibility
awareness is important to you, please consider rating Accessibility
Craft five stars on Apple Podcasts. Accessibility Craft is produced by
Equalize Digital and hosted by Amber
Hinds, Chris Hinds and Steve Jones. Steve Jones composed our theme music. Learn how we help make thousands
of WordPress websites more accessible at EqualizeDigital.Com., YouTube Video fVPNBZXyGH8, YouTube, 01kac4bsngytyzknh9j64530jd.