BBC iPlayer Radio working again

Changes at the BBC end broke the BBC iPlayer Radio program for a couple of weeks. The BBC were kind enough to help when I got round to asking, and it should all now be working again.

However, you now get thirty days of radio programmes, not just seven days, so my program takes a while to process all the programmes and display them. Be patient and it should get there.

Thanks to everyone who alerted me to the problem, and the BBC staff for helping out!

End of the Thunder Screenreader

I can now announce the end of Thunder, the first free Windows screenreader. Thunder will no longer be actively maintained, supported or developed, but you can still download installers from the WebbIE site.

Thunder was launched in April 2006 and was the first fully-functional free screenreader: Windows Narrator had launched in Windows 2000, but had never been given the features needed to make it a true alternative to the dominant commercial players. Thunder had all of:

  • Worked with Microsoft Word, Excel and Outlook, so you could use standard business applications.
  • An offscreen model, so more applications spoke, even when they didn’t comply with accessibility APIs (MSAA)
  • Scripting, so you could write application-specific support, including hotkeys and spoken messages and access to all the accessibility and offscreen model information provided by the screenreader.
  • A reading toolbar, magnifying the current text to display in large, high-contrast at the top of the screen.
  • Integration with UAC, so you could do admin functions on your machine and log in and out without sighted help.
  • Full support and translations for many languages, including Arabic, Bulgarian, Czech, German, Greek, English, Spanish, Estonian, French, Italian, Polish, Slovak and Turkish.

Technically, Thunder used a combination of the MSAA API (and UIA through the MSAA bridge), an offscreen model that hooked Windows messages, and specific COM APIs. At the time of its launch the accessibility APIs like MSAA and UIA were not as mature so the offscreen model and COM APIs were required. Other screenreaders still take this approach. Thunder also relied on WebbIE for web browsing, though we wrote in support for direct use of Internet Explorer at one point (using the MSHTML DOM).

Thunder was not open-source/free software, though it was zero cost. This allowed closed-source components to be used in Thunder, such as the powerful third-party offscreen model, and some code that could not be publicly distributed and was provided by application and operating system vendors.

Sounds great! So why end it?

Thunder was never a commercial proposition, though versions were sold with additional features or add-on voices. The aim was to make a real screenreader available to end users for nothing, compared to the very expensive commercial alternatives. But there are now three strong free (zero-cost) alternatives:

  • The great NVDA launched in 2007, and provides a free and open-source screenreader for download. It’s written by blind developers (unlike Thunder) and has attracted a loyal following (as it should).
  • Microsoft licensed WindowEyes for free with anyone with Microsoft Office. Which is pretty much anyone. So you can get a fully-fledged commercial solution.
  • Windows 8 finally improved Windows Narrator enormously, and the MSAA/UIA interfaces on which it depends have increased in utility hugely (for example, they are now available in Microsoft Office and Internet Explorer), so you can probably often get away with the onboard assistive technology much more than you could.

In parallel, we’ve seen fewer innovations in Windows GUI toolkits – XAML was nine years ago, for example, and most toolkits provide UIA and/or MSAA interfaces. So there is perhaps less need to update your copy of JAWS regularly than there was ten years ago.

And finally the huge change: blind users may not be on Windows at all any more. The iPhone and iPad with VoiceOver built in, touch interfaces, and rigorously-controlled walled-garden apps have provided a more accessible and productive environment for many blind people than the free-for-all mouse-and-keyboard world of Windows.

So new, free alternatives, and changes in the marketplace, have meant that the need for Thunder has simply reduced over time. All great news for blind users, which is the important thing. Thunder is dead, long live free screenreaders!

BBC Live Radio stations fixed (BBC turning off Windows Media streams)

This week the BBC turned off their Windows Media streams. In English this means that the particular way the BBC provided their live radio stations over the Internet changed. This broke the BBC Live Radio 2 program.

However, the BBC provide a different way to access the radio stations, so this weekend I’ve switched the BBC Live Radio program to using this new mechanism for the stations that broke, and it all seems to work. This doesn’t require a new version of the program, since which stream to use is controlled from the WebbIE site.

It also means that you gain BBC Radio 5 Sports Extra and the World Service is working again, which is good.

I notice that the local stations kept working, so I’ve left them alone: it’s entirely likely they’ll break at some point and I’ll have to amend them. But there you go. It would be great if the BBC told me about changes, so do lobby them! Mail the BBC Trust.

WebbIE 4.5.0 now available

I’ve updated WebbIE 4 today, with some minor changes and bugfixes.

WebbIE 4 has supported the new HTML5 AUDIO and VIDEO elements for a couple of years, playing then in the page where they are found with a dedicated player control to make it easier for screenreader users – just play and stop, but that’s usually just what you need. I’ve now added ability to download and/or open the content of these VIDEO and AUDIO HTML5 elements directly in your default media player: the user just has to hit the Open button in the media player, and it will be opened in whatever is the default media handler is for your system. Note that this doesn’t work for embedded data URI elements! There are also new shortcut keys for the media player: Ctrl+P to play, Ctrl+O to open, and Space to stop.

Refresh in WebbIE re-parses the page, effectively, but doesn’t go and get the page anew. You can now press Shift and Control and R to perform a “proper” page refresh, reloading it from the server.

You can now open saved MHT files from File > Open, and I’ve added a TeamViewer download link to the Help menu for support purposes.

Finally, WebbIE no longer changes the case of URLs you type into the address bar, so if you are trying to access a web page on a case-sensitive server – like a Unix server – you’ll now be able to reach it.

Updated BBC iPlayer Radio and Live Radio

I’ve updated the BBC iPlayer Radio application. Nothing major: you now get the BBC West Midlands radio station, and you can do copy (Control and C) when in the programme list to copy the name of the programme, for whatever reason.

More importantly, I’ve tweaked the user interface – the controls and their arrangement on the main window. This means that it should work better with your screenreader: it had a cool SplitContainer, which lets sighted people drag the centre dividing line of the program to resize the Station and Programme list. Sadly, testing indicated that this got in the way of screenreader usage, so I’ve removed it. This kind of careful UI design is necessary in producing software that isn’t just accessible, but is also usable, and that’s the idea of the WebbIE programs.

Minor tweaks to the Live Radio application too: I’ve fixed the BBC Radio 5 Live, World Service and Classic FM stations. Sadly, the BBC Arabic and Russian appear to be gone, so I’ve removed them.

The other item is that I’ve made it easy in BBC iPlayer Radio to launch the TeamViewer remote support program. This lets me connect to a user’s PC and see what they are doing, and try to fix things. I used to ship this with WebbIE 3, and I’ve missed it in the WebbIE 4 range of programs, so it’s now available under the Help menu: just select it and it will download and run. I’ll gradually roll this out to the other WebbIE programs.

One Switch Mouse

Today we can make available a program for people with significant physical impairments, such as muscular dystrophy. One Switch Mouse was developed by Claro Software in 2010 and has generously been made available by them for free download from the WebbIE site.

Most of the WebbIE software has been based around screenreader users – typically visually-impaired or blind people. However, there are switch users of the WebbIE programs, and a few of the programs have been specially customised to work with switch access: using a dedicated single-clicking device instead of a mouse or keyboard, like a joystick or customised button.

Switch users typically have very limited movement. Progressive muscle wasting conditions like Duchenne’s Muscular Dystrophy or Amyotrophic Lateral Sclerosis (ALS – also known as Lou Gehrig’s disease) can leave people only able to make very limited, very weak movements – perhaps only a head move, or finger, or toe, or mouth puff.

However, many of these conditions leave the user’s cognitive functions intact – you’re as smart and aware as ever, you just can’t move, or talk, or write. This is incredibly frustrating, of course.

One Switch Mouse tries to help. The mouse is controlled by using one switch, and timing how long you hold it down to control direction of movement and mouse clicking. You can move the mouse around the screen and left-click, right-click, double-clicking, and even hold down and select. In conjunction with an on-screen keyboard for typing you therefore have complete control of a standard Windows computer – and all using one switch. It even works on the Windows login screen and the secure desktop!

One Switch Mouse is free: if you or someone you know or support might benefit, do please download it and try it out.

Creating switch-accessible menus

The One Switch site, dedicated to creating accessible games for switch users, has written an article about how to create a switch-accessible menu.

A particularly interesting tip is “start one-switch scanning, then switch to two-switch scanning if the user operates a second switch”. This makes your program one- or two-switch agnostic – you are handling both use cases with a simple detection of a feature, rather than requiring another setting screen.

Of course, some of the tips might be detrimental for screenreader users (such as the typical WebbIE users). For example, many switch users benefit from menus or lists that loop – when you go off the bottom of the list you start again at the top. But screenreader users generally like to know when they are at the end of a list (WebbIE programs tend to play a sound to help identify the beginning or end) because it provides orientation, since they can’t see the screen, and jumping up and down the list is easier for them (usually by pressing the initial key for a menu item – which is a reason to alphabetically-order your lists). The key thing is to identify your audience.



Many people with visual impairments (i.e. screenreader users) find it hard to use WYSIWYG word processors like Microsoft Word. One slip of the finger and SUDDENLY YOU’RE TYPING ALL IN CAPS OR ITALICS OR WORSE.

Sure, screenreaders can announce boldness and font and italics as you go, but given every character can have dozens of attributes and you need to get on with your writing Рthat is, you want to work on the actual text, not what it looks like Рthat quickly becomes unfeasible. But you want to work with more than plain text: you want to use font and bold and other rich text formatting, because people expect that and it can help with understanding for sighted users.

A better solution for at least one blind user is Markdown. This is a plain-text way of writing formatted text: you write in plain text, but you use a special subset of HTML to add formatting like tables to your text. Then it converts from your Markdown to valid full HTML documents, which look great in Word or can be easily converted to another format.

It’s not for everyone: many users would probably be better with some way of restricting the formatting they can apply so that they can’t go wrong. But for technical screenreader users it might be a way to create attractive formatted text far more easily.

WebbIE 4.2 – response to feedback

I’ve had some great feedback on WebbIE 4 – thank you all. This has resulted in two things:

First, it turns out that the USB stick versions of WebbIE have some strong supporters who use them in various teaching and support environments. I had anticipated the death of versions of WebbIE designed to run solely from a USB stick for what I thought were good reasons:

  • Microsoft Windows has made it increasingly hard to run software from a USB stick. It used to be that you could write some simple code and a program would launch just by inserting the USB drive. Now you’re likely to see nothing at all, and have to navigate to the drive – if you can find it – and launch the program by hand from Windows Explorer. There are excellent security reasons for this downgrading of the experience, but I perceived that it made the USB sticks significantly less usable and hence useful.
  • More generally, corporate and institutional security is getting better, so being able to walk up to a random computer, shove in a USB stick, and run a program off it is surely something of the past.
  • Having people run USB versions means that when a user runs into trouble I can’t be sure that they have the latest, bugfixed, working version. Sure, that’s fine for savvy technophiles. But often people with USB stick versions are the least technical: the system has been set up with the USB stick versions by a friend or support worker. The user has no chance of updating the USB version, and I have no way to trigger an update, even if I can identify that they need one. Very messy.
  • The new rewrite of WebbIE into the .Net programming language means that I can’t guarantee, as I could with Visual Basic, that the programs will run on any Windows machine as a user. You have to be an administrator to install the necessary .Net Framework. So the development of the WebbIE USB versions are stuck at version 3, so it will be increasingly hard to support them.

However, I’ve had various messages from people asking for the USB stick version, and making a reasonable case. They say that they use it for independent access, for (indeed) walking up to machines, especially in libraries and running WebbIE and for distributing easily around organisations. My worries about support are still valid. But if people find it useful, that’s great.

I’ve therefore linked directly to a zip file containing the WebbIE USB stick version on the front page of the website. This is WebbIE 3 and all its associated programs. I hope that’s useful for people.

The second thing is an update to WebbIE, now to 4.2. I’ve done lots of bugfixing, and tried to address the perennial problem of recognising when the page is loaded so it can be processed and the ticking noise turned off. More interestingly, I’ve made some changes again based on user feedback:

  • Print has always been in WebbIE, but I’ve never been quite sure what to print out when the user hits it: the text view, in large print and little decoration, so it can be read by someone with limited vision? Or the web view, so it looks like the web page as seen in Internet Explorer and can be shown to ticket inspectors and filed away as bank statements and the like? In WebbIE 3 I tried to print whatever the current view was, web or text. In WebbIE 4 I decided on printing the text view, but after user feedback it now prints the web view. This lets you get a perfect printed copy of the page for reference. Users can print the main text view by copying and pasting in Word or Wordpad, which saves me having to write code and keeps the number of printing applications down to keep things simple.
  • Favorites or Bookmarks have always been an important feature of WebbIE. These are shared with Internet Explorer. In WebbIE 3 they would appear if you opened the Favorites menu (Alt and A) and you could cursor down them. In WebbIE 4 I created a new “favorites homepage” that shows quick links to main WebbIE functions, like “open a web page” or “search the web”, followed by the favorites. The idea here was that you could just start WebbIE and cursor down to hear your favorites, without having to do an Alt key combination to get a menu up. That’s been very popular with some people, especially novice users. However, people usually expect web browsers to go to their online home page. Also, you can’t type letters to select favorites in a text area, because it isn’t a list: many screenreader users know to start typing the list entry they are looking for and it will be selected, which means they need some sort of list control. I’ve therefore allowed the user to select whether the home page is my favorites WebbIE page, or the Internet Explorer web page. I don’t like adding new options, but this is a generally known and understood one, and there are important different use cases. I’ve also added a new function, Show Favorites, on Control + B (for Bookmarks) that brings up a new window with the favorites in a list (actually a treeview to cope with folders) so a user can press B (in QuickKeys mode) and they cursor or type to get their favourite with ease. I hope the hybrid approach suits most people effectively: new users can use the WebbIE home page, more advanced users can use their familiar page and the bookmarks list.

Finally, a new beta version of R.S.S. News Reader is also up on the site, so do try it out and let me know how you get on! Soon I’ll be able to write new programs again, which will be fun.

New versions of PDF Reader and BBC iPlayer Radio

As part of the massive WebbIE re-write into .Net, I now have online new versions of PDF Reader and BBC iPlayer Radio. These are pretty much the same as the existing programs, of course. PDF Reader uses a different third-party tool to convert PDFs into text, but otherwise they are the same.

It’s taken me longer than I hoped, not because the programs themselves were too tricky to write, but because I had to change installer mechanism again. I had hoped that ClickOnce would give me what I needed: a simple per-user installation mechanism with built-in update mechanism. Most technical queries I get are resolved by updating to the latest version. But ClickOnce does not allow for handling file extensions (except for a narrow and unhelpful scenario) nor registering as the default browser. That means I had to rewrite the installer for WebbIE, again (it must be able to make itself the default web browser) and use the same techniques for PDF Reader.

So, making progress: RSS News Reader and Podcatcher next since they share so much code. I may have to pause and make per-program installers from the existing single-installer MSI, so that people can still get programs I haven’t moved to .Net if they really want them.

Updates to WebbIE too: you can make WebbIE the default web browser, and password inputs no longer show the passport (just the customary asterices.) Thanks to everyone for their feedback.