Hi everyone,
I have developed a free and open source podcast app, called Anytime Podcast Player, which is available for iOS and Android. I've been working on improving accessibility within the app and particularly the screen reader support, but I know there is more improvements to be made and I was recommended this forum - thank you Robert.
I would be very grateful for any feedback, tips or suggestions that can help me improve the accessibility in Anytime and make it a better app if anyone would like to try it.
It's available on the App Store: https://apps.apple.com/us/app/anytime-podcast-player/id1582300839#?platform=iphone
Many thanks,
Ben.
Comments
Very cool!
I'm looking forward to giving it a spin!
It's always wonderful to experience a developer who considers accessibility and solicits feedback from the community - kudos from here!
Best
M
please use actions where appropiate
rotor actions allow things to get done quickly. Please add these where appropiate.
Will do
Hi Ben,
Thanks for reaching out on this. I had read about the app on Mastodon so had been meaning to check it out.
I’ve just downloaded it, so will send on some more feedback in the coming days, but a couple of things I’ve noticed straight away:
In Settings, VoiceOver doesn’t call out headings, so I don’t know what is a section heading and what is a selectable item.
When I opened the Search Provider option, I can’t back out of it unless I change my current selection.
The layout options do not tell me which one is currently selected.
Where there are switches, such as Dark Theme, it’s nicer if the item and the switch are contained in a single VoiceOver element.
On a related note, it’d be nice if light / dark mode could also simply follow my system choice. i.e. choose Light, Dark or System.
Outside of accessibility, will there be global settings for things like how many episodes of a podcast to keep, playback speed, and ability to stream rather than download?
One thing I like straight away is that the Discovery section appears to be localised, that’s the one thing that annoys me in Overcast, which just seems to promote what’s popular in America.
Cheers,
Dave
Thank you for the initial feedback
Thanks everyone for the initial feedback.
Dennis - after I received your email the other day, I have been looking into the rotor features within VoiceOver. Unfortunately, it looks like the tools I use to build this app do not currently support Rotor. I'm still researching this, and I'm hoping there is a solution.
Dave - thanks for the feedback around the UI, I will implement all of those fixes. There is also an open issue for updating the theme handling to default to the system theme, so that will be fixed too.
Outside of the accessibility issues, yes, I do have plans for things like auto downloads and keeping only so many episodes. Anytime does support different playback speeds, and it is a global setting, but it is accessed from the main player screen - if you adjust the speed for one podcast, it will stick with that speed for all.
Anytime will stream an episode by default, unless you have previously downloaded it. One piece of feedback I received is that, with the download and play buttons next to each episode in the list, it takes a lot of swipes to move through the episodes. I'm looking at ways I can improve this.
I've not tried it yet but...
I think sounds might be nice, kind of like how downcast does it.
they have a similar issue where you have episode one, then a more info button about episode 1 so you do have to do a lot of flicking.
Of course you'd be able to turn the sounds on and off too, I might like sounds but others won't, and they should be very short too.
I'll check this out once a couple more things have been added.
It would be really nice if you could use the rotor actions to speed things up quite a bit, I understand from your point of view it would probably be very annoying to remake the app and change the language/framework its built in, and if that's not something you're willing to do I understand but it would make things quite a bit faster for us.
Unfortunately as far as I know; that rotor kind of thing doesn't exist with android so if you want to keep it the same across the board that's also understandable.
Re
Thanks Ben, sounds good.
Glad there is a speed setting, though personally I prefer when there is a global setting and a per podcast setting. This is because there are certain podcasts I always listen to at a higher speed. I appreciate though that this is not a VoiceOver accessibility thing.
Yes, the multiple swipes to get through a list is a frustration. The Actions menu would definitely be the most elegant and user friendly approach for VoiceOver users if it can be done. Brad is incorrect, TalkBack on Android does also support Actions, though I’ve no idea how similar or different the implementation is.
Another option could be to put such controls into a context menu, but that may not work so well for non-VoiceOver users, unless there’s a way around that.
Dave
Oo, cool.
I'm glad I'm incorrect.
I did end up downloading the app and have noticed when importing an OPML file there's no import from overcast or downcast options, could that be a thing that's added?
I hope this podcast app becomes what I need, I don't mind paying for apps but free is always great :)
Another thing is volume boost, that's a big paid for feature on overcast and I believe downcast too.
Oh and also it would be nice if we could leave and read reviews on podcasts as you can't seam to do that with overcast and downcast.
You might want to also think about adding a donate button to help keep the app up on the app stores.
Chapters in podcasts?
I can't seem to find the chapters for some of the podcasts I'm subscribed to.
I'm wondering if it supports chapters, because I don't see it with Voiceover.
But I do like the fact that I can import and export OPML files, something you can't do with Apple's native Podcasts app.
UI/UX enhancements
Brad - the sounds idea is an interesting one. I might pick up a copy of Downcast and see how it does it. The Rotor support is a bit frustrating, though I will do some more research. In my limited testing with it, the words & characters options do seem to work on blocks of text.
OPML import at the moment launches the file selector for you to pick a file. What I plan to do is support sharing so, for example, you can do an export in Downcast as a share and pick Anytime as the app to share with.
Dave - At the moment, each episode item line displays the episode image, title details with the download and play buttons to the right. Double tapping an episode line expands to show further controls. One idea I have had, is to move the download and play controls into the expanded section. This means that each swipe right would move down another episode. When you want to play an episode, double tap to expand the options and swipe to play. I would also make this UI change an option within settings. What do you think of that idea?
Brad - volume boost is on the to-do list. I have this working on the Android version, but have yet to get it working on iOS - but I'll get there :)
kool-turk (great handle). Anytime supports Podcasting 2.0 chapters, but not chapters embedded in the MP3 which is how I think Apple Podcasts handles them. For episodes that have PC2.0 chapters, there will be an additional tab entry in the main player.
I'll stick to overcast for now.
But this is a great start and can hopefully only get better from here.
re: UI/UX enhancements
Your idea sounds like a better way to quickly scroll through episodes.
It would certainly cut down on the swipes just to get to the next episode.
I was wondering if there is a way to refresh podcasts manually.
I prefer to update my feeds manually and most podcast clients that I have used have a refresh button.
On Windows, I'm currently using Grover Podcast, and it meets my needs.
It just doesn't have a volume booster or a caption option.
Although, I think captioning podcasts is more of an Apple thing, unless podcasters do it themselves.
I only know of one podcast that does it, and he was captioning his podcast before Apple decided to add captions to podcasts in their directory, but only for podcasts in their directory.
That's the clincher - they have to be in the Apple Podcast directory before they can be captioned by their AI.
Wow, talk about going off on a tangent.
I haven't tried exporting podcasts yet with this app, I mean, it seems easy enough.
I'm wondering how I would get the OPML file from my phone to, say, a Windows PC.
I guess I'll just have to play with it some more.
OMPL import & export
A manual refresh is possible by performing a pull-down gesture on the podcast details page; however, this doesn't work well with VoiceOver or TalkBack and it's not very obvious. I will add a manual refresh option to the menu button to the right of the follow/unfollow button.
The new Apple transcript generation does only work in Apple Podcasts, but if there is an external Podcasting 2.0 transcript in the feed, Apple will honor that. I am hoping this will start to bring the price of transcript services down so more podcasters can use them and they can appear in more apps - not just Apple Podcasts.
To export an OPML file from Anytime and get it in to Grove, the way I would do it is to setup a folder share on the Windows PC. Then, in the Apple Files app, use the 'Connect to server' option to connect to that share. Once that is in place, the files app should remember that share from then on.
In Anytime (or any podcast app that can export) you can select the OPML Export option and share it with the files app. In the files app, navigate to the share on the Windows PC and save the file there. In Grove you can then import the OPML file from that share. It's a bit of a fiddle to setup, but once done it's a useful way to get the files across. I use this method myself quite a lot, when I need to transfer OPML files between Android & iOS when I am testing.
UI and other feedback
Hi again.
1. Yes, I think that idea of moving all controls into the expanded section would work pretty well. The way VoiceOver is currently speaking on these list items is a problem however. On each item, VoiceOver first speaks "Episode list item, showing image, summary and main controls", before speaking the episode title etc. This kind of verbosity is incredibly irritating and would immediately put me off using the app. VoiceOver should just speak the episode details. At the end of the details, you could have it simply say something shorter like "Controls collapsed" or "Controls expanded". But it'd be important this is after the episode title etc, not before them.
1a. It's probably still worth exploring the Actions menu in the rotor as it's a very familiar control, but the above could work well I reckon. Yes, you should get the likes of Characters, Words etc in the rotor for free so to speak, but I don't know what is required to get Actions. Hopefully other developers can help you.
1b. When I do expand the full controls, and then select the More button, a couple of things confuse me. A control says "Collapsed, double tap to expand" - I can't tell what this does as nothing further seems to expand beyond what is already. Also, if I swipe to the last item, it is something VoiceOver calls "Scrim" - what is this?
2. When on the main screen for a podcast with the list of episodes, there is a button next to Unfollow and Options Menu called Sleep Timer. Is this an incorrect label? The items in the menu seem to be an episode filter feature. Plus this menu also includes something called Scrim.
3. There's a default VoiceOver gesture called the "scrub" which acts as Escape / Back. Often it would be our equivalent to swiping from left to right to go back, that sighted users would do. While that sighted method is working in the app, I've noticed the VoiceOver scrub gesture though is not, meaning we have to find the Back button to go back.
4. I'm having problems scrolling long lists.
4a. Firstly, when I scroll a list of episodes using the three finger up / down gestures (our equivalent to swiping up / down with one finger for sighted users), I'm not getting the normal sound, spoken or haptic feedback I'd expect.
4b. There is no vertical scrollbar on the right of the screen. I don't know about anyone else, but I find this incredibly useful for quickly scrolling long lists.
5. I had some issues importing an OPML file. I found the option and selected the file no problem. However the import got stuck at 10% progress, with the name of a podcast on screen. My best guess is that the podcast it got stuck on no longer exists in the iTunes library or whatever, but I had no option to simply skip it. I had to cancel the whole operation, and was left with only 10 of the 80 or so podcasts I was trying to import.
Cheers,
Dave
re: UI/UX enhancements
I think the developer didn't get the concept of what the router option actions does for us. So the facebook app is an example of how actions work. Not a good one, but still. Visually, the app shows the like, comment and more buttons to the right of posts like the episode list does for the player, but to Voiceover, you have to set the router to the actions option and swipe up and down to see the set of options, like, comment etc, Too voiceOver the visual like comment and more button's aren't shown. once the post is opened, the facebook post has all the buttons shown. but on the list of posts it uses the actions router option. so For the podcast player, you could have the actions to play, download, etc in the voiceover actions menu, and not in the way of scrolling through episodes or podcasts. Maybe someone can explain this much much better than i can, but hopefully this kind of helps a bit.
Re: UI and other feedback
Hi Dave,
Thank you for the detailed feedback, I really appreciate it.
1. Thanks. I will experiment with moving the controls around, or maybe taking a leaf out of Overcast's book and moving the controls to a popup menu when the screen reader is on. I will re-work and reduce the amount of speech on the items and move the more prominent information to the start of what is read out. I can see that the level of verbosity I have on some items would quickly become irritating.
1b. Not sure why that item is saying collapsed - it shouldn't. The more option control appears as a popup panel at the bottom of the screen; the area outside of the panel is called the scrim. Double tapping that closes the panel. I'm not sure why it's called a scrim, and if VoiceOver reading it out is the correct behaviour. I'll look into that.
2. Yes, apologies, that is a mis-label and should read Episode filter.
3. I will look to add the scrub gesture for back control.
4. Comparing the scroll behaviour with Apple Podcasts, Anytime is not working the same way. The scroll gesture works, but it does not page in the same way. I will do some more research on how it should behave.
5. Would you mind sharing your OPML file and sending it to me at ben@anytimeplayer.app? I've had a few users reporting the OPML import getting stuck, but I've yet managed to reproduce it.
re: UI/UX enhancements
Thanks Ernesto, that's really helpful. I will take a look at the Facebook app.
You're right, the various actions available in VoiceOver are new to me. From the feedback I am receiving, I realise that my screen reader testing has focused around the common features offered by VoiceOver and TalkBack, but that both technologies offer additional features that I need to look at.
OPML and Question
Hi. No worries, I've sent you that OPML file now.
I also have a question. I selected the Add To Queue button on a few podcast episodes, but I can't find the queue anywhere? I can find downloaded episodes no problem, but that seems to be different. Where do episodes you add to queue go?
Dave
Episode Queue
Hi Dave,
At the bottom of the main player window, there is a slide up/tap to expand panel that contains two buttons: one for the queue labelled 'Up Next' and the other for transcripts, if the podcast supports it.
I've had a few people ask to make the queue available outside of the player window, so that's on my list too.
Thanks,
Ben.
Actions
Custom action support would be super useful. You swipe up and down when focused on a control to quickly access common actions. For example in the iOS Mail app, swipe up and down to quickly do things like delete messages, or edit icons on the home screen. TalkBack supports these as well, but I'm not sure if it's available to third-party apps. The only places I've found support for it are the Pixel Launcher and Gmail. I'm using a Pixel 7 with the latest version of TalkBack and Android 14, so I'm not sure if it's different on other devices. I prefer Pixel phones because just like the iPhone, you know exactly what you're getting.
New release of Anytime Podcast Player
Hi everyone,
Some months back, members of this forum very kindly tried out my podcast app and gave me some great feedback on how I could further improve the accessibility support. The top 3 takeaways were:
1. Reduce the amount of swiping required to navigate the app.
2. Reduce the verbosity of the text being read out by VoiceOver.
3. Add support for the Rotor to further improve navigation.
Rotor support is, unfortunately, still on hold as the tools I've built my app with do not currently support it; however, I have made a number of improvements to address 1 and 2.
There is a new release up on the app store if anyone would like to try out this latest update: https://apps.apple.com/us/app/anytime-podcast-player/id1582300839#?platform=iphone
Thanks again for all your feedback.
Ben.
May I ask, what is the USP…
May I ask, what is the USP of this app over something like the apple podcasts app? I'm really glad you are considering accessibility and will be happy to give feedback, but unless it does something better than any pre-existing app, I might have to give it a miss.
adding rotor support
This is really important and allows a voiceover user to get things done quickly. I would strongly suggest you use tools that allow for proper accesibility support. If it is missing Rotor support what else is it missing? Until Rotor support is added I can't even consider using it as my fulltime podcast player.
It's not a bad podcastplayer…
It's not a bad podcastplayer, I just can't find the chapters that I know are in certain podcasts I listen to.
But I do like how you can import and export OPML files, something you can't do with the native podcast app on iOS.
USP, Rotor & Chapters
Hi @Ollie. The USP is that it's a simple podcast app, supports several podcasting 2.0 features such as chapters, transcripts and person details. Everyone's idea of the perfect podcast app is very different, so some people love Anytime due to it's simplicity and clean ui - others dislike it for the same reasons. If Apple Podcasts suits your needs and you're happy with it, there might no be enough in Anytime for you to consider the switch.
@Dennis unfortunately, to switch tools now to take full advantage of the Rotor would mean me throwing the app away and starting again from scratch. I am building it with Flutter which is developed by Google, so I am hopeful that Rotor support with improve, especially given that Android has/is working towards something similar.
@kool_turk Anytime supports Podcasting 2.0 chapters which is becoming increasingly popular due to it's additional features such as adding external links. The other way chapters are supported is by embedding them within the mp3 file. I think Overcast & Apple Podcasts support this, but I haven't added this support to Anytime yet. Would you mind sharing a couple of the podcasts that you are expecting to contain chapters? Thank you.
Full-screen player and unplayed episodes
Hello Ben, I have set the player to start in full screen mode in the settings. But this doesn't happen when I start a podcast. I really like the app itself, but I'm still missing something. I have subscribed to around 40 podcasts and it would be nice if there was a view of the unplayed episodes. Otherwise I have to check every podcast to see if there is a new episode. Thank you for your efforts and best wishes from Germany
Full-screen player
Hi @Kroni,
Ah, that looks to be a bit of a bug there. It doesn't seem to pick up switching on full-screen mode on playback until you quit Anytime and restart it. I'll get that fixed!
Thanks for trying out Anytime. Yes, currently you view episodes by going into a podcast. I do have plans to add an episode view in the future, and badges/un-read counts on the library view.
Many thanks, Ben.
Thank you for explaining…
Thank you for explaining. Yes, absolutely, sometimes it's the flavour of the app that appeals, even if it does something similar it might just be there are preferred ways of working. For example, I hate the audible app, but love prologue, even if it is a lot more work. Clariety of the UI, for us especially, is very important.
I listen to three, now only…
I listen to three, now only twothat supports chapters.
I'll paste the urls that I got from iTunes.
https://feeds.transistor.fm/appleinsider
http://maccessibility.net/feed-podcast.rss
https://pinecast.com/feed/livingblindfully
That last one is the one I tested to see if there were chapters, and sadly that podcast shut down.
The other two definitely use chapters cause I see them in grover on windows.
I also can't find chapters in apple podcasts, go figure.
But hopefully this can help.
For the person who can't find chapters in Apple Podcasts
Turn on the mini player, then turn on cue: The chapter will show up. Just double tap on the one that shows up to bring up the rest.
Back Button
Hi. As I was exploring the settings in the app, which I am doing now, I notice VoiceOver saying, "button," which is a Back button, because screen recognition is somehow on for the app, and then I flick right where I find another Back button. These do the same thing. I don't think there should be 2 back buttons. It was kind of weird seeing 2 back buttons. I haven't tried any podcasts yet, but that's my feedback. Thanks and have a good day.
Back button
Hi @Rob,
Thanks for letting me know about this. It's odd. VoiceOver is picking up the back button twice. I will get that fixed!
Ben.
Re: I listen to three, now only…
Hi @kool_turk,
Thanks for the podcast examples. Not sure about the last, but Apple Insider uses the Podcasting 2.0 chapters system. Actually, it uses quite a few Podcasting 2.0 features such as person avatars and funding. The chapters appear in Anytime.
Maccessibility looks to uses chapters embedded within the MP3 file. Apple Podcasts supports this (and the chapters appear), but Anytime does not. I hope eventually to support both formats to cover all bases.
Thanks again.
Ben.