While there are many things that developers can do to make web applications accessible it remains true that it is near impossible to cater for the needs of all users all of the time. There are simply too many requirements to try and meet, and time pressures alone mean that your application will not be able to deal with them all.
For example, the majority of users of a site like YouTube will benefit from a clean and simple interface, with subtle use of colour which does not distract from the video being played. They may like to have other videos recommended for them to watch. Users with learning difficulties however may benefit from large buttons with strong colours so that they can easily differentiate between them; recommended videos may be an unwanted distraction.
Of course YouTube could provide two different interfaces, but would then also need to design a mechanism to switch between them and from the requirements we have already defined this may necessitate a large colourful button on a clean interface, which somewhat ruins the user experience. And this is just one extra version, it may also need to create a version for low vision users (perhaps a high contrast version), deaf users (more space dedicated to captions), motor control impaired users (larger buttons), and many more. This is not maintainable for most companies, no matter how large.
By offering an Application Programming Interface, usually referred to as an API, which allows access to content and interactions other developers can create their own interfaces catering to a specific need.
Easy YouTube is an interface to YouTube aimed at users with learning difficulties. It has large and colourful buttons, clearly explained controls and an intuitive interface which makes it easy for users to either watch a specific video or search for new videos.
YouTube and Easy YouTube player is a great video demonstrating the difference that an interface designed for a users specific needs can make.
This wouldn’t have been possible had YouTube not provided a method for accessing and interacting with their content, so the next time you are working on a new web app give some thought to providing an API.