Transcript - Introduction to accessible apps - Accessible publishing

Accessible publishing banner - basic

Nested Applications




[Narrator:] More and more people are using mobile devices to consume and create information. Therefore, the European Parliament published Directive (EU) 2016/2102 on the accessibility of the websites and mobile applications of public sector bodies. According to this directive, public institutions must have made their mobile apps accessible by the 23rd of June 2021.

Smartphones and tablets have become an essential part of modern life. The most popular of them, running either Apple's iOS or Google's Android, come bundled with many accessibility features. The main accessibility features offered by Apple's iOS and Google's Android are as follows:

  • For users with visual disabilities: a screen reader and a set of redefined touch gestures, which makes touch interaction with the device independent of screen position.
  • For users with low vision: a screen magnifier and tools to modify colour reproduction so colours and contrast can be adapted to personal needs.
  • For users with auditory disabilities: means of enhancing or modifying audio signals and rendering mechanisms for displaying text alternatives, captions and subtitles.
  • For users with limited motor skills or strength: support for joystick, switch-based interaction or voice control.
  • For people with vocal or speech impairments: text input alternatives to speech input.

For more information about how the different operating systems implement these functions, please refer to the corresponding chapters in the Concepts section of the Accessibility platform.

Even though the operating systems of these devices offer accessibility features, this does not mean that all apps are accessible. A programmer needs to respect several programming guidelines to guarantee that the resulting app can be used by as many people as possible.

Native development environments

Apps to be distributed on different platforms have to be developed using different environments and programming languages. Native iOS apps distributed in Apple’s App Store are typically written in either Objective-C or Swift, using the Xcode development environment. Apps in Google’s Play Store, running on Android, are typically written in Java or Kotlin, using Google’s Android Studio. Both operating systems offer different programming libraries and tools. In general, the possibilities for sharing code between these two platforms are very limited.

Cross-platform development environments

Apps using a single source code for both platforms can be developed following a cross-platform approach to save time and cost. There are essentially two approaches. The first option is to use a development framework based on web technologies. In this case, the program is written as a web app running in a browser inside the app. This is called a hybrid app.

The second option allows us to use a cross-platform development environment. Such environments allow a programmer to write programs that run natively on multiple platforms using a single source code.

Hybrid apps

Web technology uses HTML code, style sheets and JavaScript programs as well as data files, such as images, to create a web app. A web app bundles web resources and embeds them in a native app wrapper. The result can be compiled using either Apple’s Xcode or Google’s Android Studio to distribute the app in both app stores. As a consequence, a web app is nothing more than web data files running in an embedded web browser on both platforms.

There are a number of advantages to this approach. The source code is developed only once and then distributed in multiple app stores. As only a single code repository has to be developed, a developer can save a lot of time. A hybrid app can be optimised for accessibility by following the World Wide Web Consortium’s Web Content Accessibility Guidelines.

Of course, this approach also has its disadvantages. The functionality of a web app is limited to the functions the development framework offers. A hybrid app cannot use all the native features of an operating system. The user interface of a hybrid app does not use the native user-interface elements of the operating system on which it is running; it will always look like a responsive web app. A hybrid app runs much more slowly than a native app.

If the app to be developed has a purely informational character, then the web app approach is often a good choice. If an app needs to have access to native operating system features, then the possibilities of the development framework may be too limited. If the app relies heavily on graphics and fast processing speed, then the web app approach is definitely not the best option.

Presence on the mobile application can also be achieved with a technology called progressive web app. This technology does allow users to place an icon as a shortcut to the home screen of a mobile device and to use the app offline, but it is essentially a web page. It is out of the scope of this presentation.

Native cross-platform development

For many application scenarios, web apps are too far removed from the native environment, so a new type of cross-platform development environment has emerged over the last few years. The key advantages of such environments are as follows.

  • They offer a single programming language for multiple platforms.
  • They offer user-interface designer tools to define a single interface, which then appears on multiple target platforms with a native look and feel.
  • They offer programming libraries which create a single programming interface for those functions of the different target operating systems that are similar. In case the available libraries are not sufficient to implement an app, the development environment often offers a plug-in mechanism for developing native modules, which can be embedded in the app.

Of course, this approach also has its disadvantages. The cross-platform libraries provide a common ground for all target operating systems. If their available functionality is not sufficient, a developer will have to develop and maintain additional modules using different source codes on different platforms with different programming languages. If an operating system update causes problems running an app, a developer may have to wait for an update of the cross-platform environment before a new version of the app can be released.

The use of a cross-platform development environment will, in most application scenarios, be a very good choice. The app will look and feel like a native app, offering a fast response time. Additionally, the development efforts can be considerably reduced.

In the following chapters, we will take a closer look at how to improve the accessibility of apps using the different development approaches: native-iOS, native-Android and cross-platform development.

User-interface considerations

There are accessibility considerations to be taken that are independent of the operating system or development environment used. All apps, regardless of how they were developed, offer a graphical user interface. The user interface should follow the general accessibility guidelines, which are defined by the Web Content Accessibility Guidelines. Even though the standard focuses on web technologies, its rules can be applied to different file formats and media.

Here are some examples of potential accessibility considerations:

  • Does the navigation present a meaningful sequence?
  • Do the users get what they expect?
  • Is the text large enough and is its line spacing sufficient for a user to be able to read it?
  • Do all colours offer enough contrast?
  • Do all non-text media have text alternatives?
  • Does the content render properly on different screen sizes?
  • Are the touch targets large enough?

For a complete list of criteria, please refer to the Web Content Accessibility Guidelines standard itself. Use these criteria and add them to your app’s accessibility test plan.

Where to continue?

You have now had a general introduction to app development, presenting several different approaches. We will use these approaches to explain how to improve accessibility using different development environments.

Depending on your personal interests, you could continue with one of the following chapters:

  • Apps iOS

  • Apps Android

  • Apps cross-platform

[Automated voice:] Accessibility. For more information visit:

Close tab