Accessibility

Introduction

Accessibility in software development aims to make software available to people of all abilities. This includes people with

  • impaired vision
  • motor difficulties
  • cognitive impairments or learning disabilities
  • deafness or impaired hearing

Qt aims to support you in writing accessible software. Let's have a look at common themes in this context and how Qt can help you in making your software accessible.

Scalable UI

Allow your application’s user interface to work in different sizes, resolutions, and form factors. Also, allow the user to customize fonts and font sizes.

Qt supports you by providing a sophisticated layout system that dynamically scales your user interface. Qt widgets and controls, by default, also use fonts and font sizes configured in the operating system.

Keyboard Navigation

Do not rely solely on a computer mouse or touch as input but also allow navigation by a keyboard. Define keyboard shortcuts for often used functionality.

Qt enables keyboard focus and navigation for Qt Widgets and Qt Quick and makes it easy to configure global or local keyboard shortcuts. Qt Virtual Keyboard allows you to show an on-screen keyboard.

Colors & Color Contrast

Provide enough contrast in your UI and consider the most common cases of color blindness. Support different color schemes in your application, or respect colors and themes as configured in the operating system. Do not depend on colors only to provide information.

Qt widgets and controls do adhere to the system color palette by default. For embedded software, styles allow you to create high-contrast themes.

Sound & Speech

In addition to allowing visual interaction with your application, consider sound notifications or speech input and output. Do not exclusively rely on sound notifications though.

Qt Multimedia allows you to play sounds, and Qt TextToSpeech allows you to read out texts with a synthesized voice.

Assistive Tools

Allow your application to be used via assistive tools like screen readers and braille displays.

Qt does use platform-specific APIs to expose the semantic structure of your GUI to such tools. The ready-made widgets and controls also provide enough metadata to be usable, and custom widgets and controls can expose and enhance this data, too. See Accessibility for QWidget Applications and Accessibility for Qt Quick Applications for more details.