With all the major user interface changes that are coming in Ubuntu Natty, its easy to get lost in exactly what is changing, how, and why. Things like how you access your most frequently used applications, files, and devices, are all changing. If not in Natty, then in the very near future with Natty+1 and beyond. With all these changes, there is one change that hasn’t been heavily talked about, at least in the Ubuntu accessibility community, and the change that I am about to talk about has been around since Lucid, if not longer.
Traditionally, both on Linux desktop environments and Windows, there has been the concept of the system tray, where applications and system services would place icons, to inform you about various pieces of information, such as whether you have new mail, the amount of battery power left in your laptop, your sound volume, new instant messages, etc. Both in GNOME and Windows, one would have to navigate to the system tray area, or the notification area in GNOME, to interract with these icons. Sometimes you might want to get more information about your laptop’s power state, or you might want to change the network you are connected to, or you want to retrieve that message that just came in. With various screen readers on Windows, it is possible to review and interract with these icons with one or more keystrokes, but depending on what you wanted to do, you would either have to left click, right click, or even double click to get what you are after, whether it be a menu, a window to pop up, etc. Since at least Lucid, there has been ongoing work to change the way users are presented with information from such icons, and change the way the user interracts with them. Enter indicators.
An indicator is an icon on the top panel, which is used to do much the same as a system tray icon, i.e network strength, sound volume, new messages, etc. However indicators take it one step further, by changing the icon image, depending on the status of the indicator. In addition, indicators are sorted into logical groups of tasks, which reduces the clutter on the panel. The indicators we have as of Natty, are:
- * Network: Handles everything to do with connecting to, discovering, and configuring your system’s network access.
- * Sound: This indicator not only lets you change the sound volume and configure various sound settings, it also gives you a common set of controls for any media player that communicates via the empress protocol. Both Rhythmbox and Banshee communicate via this protocol, with more Linux media player support coming as more developers learn about, and implement this protocol.
- * Bluetooth: This indicator allows you to configure access to bluetooth devices, adjust preferences, send/receive files, etc.
- * Power: This indicator provides status for yor computer’s battery if it has one, as well as for any recognised device that is connected, such as a media player, or phone.
- * Messaging: This indicator groups all messaging related tasks together. Everything from email, twitter/identica accounts, and instant messages is found here. With all Ubuntu’s common messaging applications such as evolution, pidgin, gwibber and xchat, this indicator will let you know when you have any new messages. Opening the indicator will then show you the individual programs that have messages waiting for you. More about how indicators are opened, and how they display information to the user in a minute.
- * Date and time: This indicator’s name should be self explanetory, lets you see the current date/time, as well as access a calendar, which will also have evolution calendar integration, so you can look up your appointments without even having to open evolution.
- * User, OR MORE COMMONLY REFERRED TO AS ME: This indicator is used to show, as well as access, controls related to the CURRENTLY LOGGED IN user, both setting your status for chat/instant messaging applications, as well as accessing and configuring your user profile, including your picture. This indicator also gives access to Ubuntu One. You can find out more about Ubuntu One at http://one.ubuntu.com.
- * Session: This indicator provides access to session conTrolls, logging out, shutting down/restarting, suspending/hibernating your system, as well as switching to the guest, or other user. You can also lock your screen from here.
The major difference between indicators and system tray applications, is that indicators are all menus, and the area where the indicators are shown is a menu bar. In other words, you can click on an indicator, and then use the arrow keys to move between all the indicators and their menus, just like you would a normal menu bar. Its worth noting that there are controls both in the date/time indicator, and the sound indicator, that allow you to use the left/right arrow keys for adjusting various settings, most notebly, the sound volume.
So for a user who uses a screen reader such as Orca, how do you access the indicators? The answer depends on whether you are using the traditional GNOME environment with the GNOME panel at the top, or Unity. For the traditional GNOME environment, the indicators themselves are placed into indicator applets, that are added to the GNOME panel. You can add and remove various groups of indicators, based on what you want to use. The panel still allows the use of traditional system tray like applets, so for GNOME users, you can still use the older system tray icons if you wish, however you may change your mind when you have used indicators a few times.
For Maverick and earlier, the indicators in the gnome panel are in 2 groups. Networking, sound, bluetooth, power, and messaging indicators make up the first group, and the Me and session indicators make up the second group. There is date/time for Maverick and earlier, however this is the clock applet, i.e you have to access this via conventional means, navigating to the panel, locating the clock applet, and activating it. To access the first group, you press Super + M. Note that Super is also known as the Windows key. Pressing Super + M will place you onto the messaging indicator, and then you can navigate to whatever indicator you want to interract with, via the arrow keys. NOTE: Super + M conflicts with a Compiz binding to invert screen colours. Please check to see whether you are using Compiz prior to trying this keystroke. If you are using Compiz, it is suggested you reconfigure the colour inversion keystroke to something else, as the Super + M keystroke for the messaging indicator is not currently configurable. Configuring Compiz is out of the scope of this post. To access the session/second group of indicators, press Super + S, again this is not currently configurable. This will place you on the session indicator. When using either keystroke, the indicator menu will open, allowing arrow key navigation. Since the indicators are grouped, it is not possible to move between the groups of indicators with the arrow keys. In Natty, all above mentioned indicators will be in the one group, and the Super + S keystroke is the only keystroke that allows navigation to the indicators, but because all the indicators are in one group, the arrow keys can be used to move between all the indicators. FOr Natty and later releases, date/time is an indicator.
For Unity, things are quite different. Not only can you not use legacy system tray icons, but once you navigate to the top panel, you can access all menus for the current application, as well as indicators, by using the arrow keys. There are no grouping barriers between any top panel items. To access indicators in Unity, press the F10 key. This will place you on the first menu of the currently running application. You then press left arrow twice, to navigate to the other end of the panel, and navigate through the indicators. More information about how to make better use of the Unity environment will be given at a later date.
Note that if you access the indicators in Maverick and earlier, you will not get much information about that indicator, i.e no info about how loud your volume is, either from the indicator when you open it, or when you navigate to the volume control, and no information about new messages, or current network/bluetooth/power status. The one exception to this is the Me indicator, where you will here your username when navigating to that indicator menu. This is because that indicator has a label. The indicator design calls for very minimal use of labels, and only where absolutely necessary. As stated earlier, the icon is supposed to give a visual representation of that indicator”s status. Accessibility wise, things will be partially addressed in Natty, where navigating to the main indicators will give you some idea of what indicator you are on, and if that indicator icon represents a particular status, you will hear/read a textual description of that status. For example, navigating to the volume indicator will give you your sound volume in percentage. Navigating to the messages indicator will tell you if you have new messages, and of course, the network indicator will tell you what type of network you are on, whether it is wired or wireless, and the signal strength if applicable.
The indicator menus also use icons to convey further information about status, particularly in for wireless networks, as well as for applications with new messages waiting in the messaging indicator. It is hoped that this will be fully addressed in Natty+1, as the components of the indicator framework that are responsible for these icon menu items need to be extended to support textual descriptions of menu item icons.
There may or may not be more indicators introduced in the future. Applications can create and display their own indicators as a separate icon, and it will be up to individual indicator authors as to whether they include a textual description of their indicator icon, but it is hoped that any application that needs to use indicators, will be able to be grouped under one of the main indicators discussed above, thereby keeping panel clutter to a minimum.
For more information about indicators and accessibility, feel free to contact the Ubuntu Accessibility team, https://wiki.ubuntu.com/Accessibility.
This post was written by Luke Yelavich