Don't Limit Your User Base
If you are designing an application for use by engineers, or by children, or by system administrators, be sure to create an application that can be used by all engineers, children, or system administrators, including those with disabilities or those who are native speakers of a language different from yours. Be aware of accessibility issues and internationalization and localization issues, many of which are addressed by the guidelines in this document.
- 1.2.1. Accessibility
- 1.2.2. Internationalization and Localization
1.2.1. Accessibility
Accessibility (sometimes called a11y) means enabling people with disabilities of some kind to participate in life's activities: in this case, specifically to use your software. For example:
- Color-blind users may not be able to use your application if you rely only on color-coding to distinguish different types of information
- Users with hearing impairments may not be able to use your application if you rely on sounds to indicate critical information
- Users with limited movement may not be able to use your application if you don't provide keyboard equivalents for commands
Your software should also be usable with voice interfaces, screen readers such as Gnopernicus, alternate input devices, and other assistive technologies. The standard GNOME libraries do most of this work for you, but with a little extra effort you can make your application every bit as useful to users who rely on those technologies as to those who don't.
GNOME has excellent inbuilt support for accessibility by means of the ATK and GAIL libraries, which in many cases can do most of the work for you. More information on accessibility in GNOME can be found at the GNOME Accessibility Project.
1.2.2. Internationalization and Localization
Internationalization means designing software so that it can function in different language environments. Localization is the process of actually translating the messages, labels, and other interface elements of an application into another language.
GNOME has excellent support for both internationalization (also referred to as i18n) and localization (also referred to as l10n). In most cases, simply using standard GNOME APIs for displaying text and messages will allow you or others to localize your application for other locales. For more information on how to make your application localizable, see the Pango project home page (Pango is the GNOME library for rendering internationalized text), the GNOME Translations page, and the GNOME Translation Project page.
Sensitivity to cultural and political issues is also an important consideration. Designing icons and sounds, and even choosing colors requires some understanding of the connotations they might have to a user from a different part of the world.
Examples of elements it is best to avoid for these reasons include:
- Pictures of flags or money
- Maps showing political boundaries or contentious location names
- Lists of countries or cities in non-alphabetical order (unless specifically requested or required by the context)
- Icons depicting animals
- Icons depicting only hands or feet