GNOME Accessibility Logo

Magnification: This page provides magnifier information related to GNOME Accessibility.

Magnification in GNOME Shell

Overview

Magnification is an adaptive technology used primarily by persons with poor vision. It is currently offered through GnomeMag. GnomeMag is a CORBA service that any desktop application can call upon to magnify and otherwise enhance the desktop. CORBA is being deprecated in favour of D-Bus. There are two ways to proceed to insure that magnification remains available. One of these is to replace the current CORBA-based GnomeMag with a D-Bus version.

Another promising approach is to build magnifier functionality into GNOME Shell. This has some advantages:

This page is about a magnifier for the GNOME desktop built into GNOME Shell.

Current Status

The following sections outline what the GNOME Shell Magnifier does now, and where it's headed. The latest version of GNOME Shell (2.31.2 as of this writing) includes the magnifier functionality as documented below.

User Features

Implemented Features

Features in Development

  1. User interface for focus and caret tracking preferences.
  2. Multiple Displays
    • Some users have two displays attached to their computer. They designate one of the displays for the "normal" view, and the other display is used for the magnified view. The use of two displays is for orientation. It is easy to lose one's place in a magnified view since much of the context is lost -- the whole screen cannot fit within a magnified view. Instead, the non-magnified display acts as a thumbnail for the user and they can use that as a way to orient themselves.
  3. Quick Access for Altering Magnification Factor.
    • Having to open a preference dialog, locate the slider or spinner that is used to modify the magnification factor, and manipulate it is a user experience pain point. The magnifier will offer a mouse gesture and/or keystrokes for quickly changing the magnification factor. Possibilities include using the mouse scroll wheel with a keyboard modifier (e.g., control+wheel) to increase and decrease magnification; and control+shift+plus/control+shift+minus keystrokes to increase/decrease magnification factors.

Features and GNOME Versions

The following table lists the features described in the previous sections in terms of which version of GNOME they ship with. The "Functionality" column relates to what is implemented in GNOME Shell, "Settings" refers to the GSettings data that support the functionality, and "Preferences UI" to the dialog(s) that allow users to change those settings.

Features

Functionality

Settings

Preferences UI

Magnification, mouse tracking, position, and crosshairs

3.0+

3.0+

3.4+

Inverse video, brightness, and contrast effects

3.6+

3.6+

3.6+

Focus/Caret tracking

3.10

3.10

3.12+ (est)

Demo Videos

There are two videos showing the features of the magnifier. The videos are in ogg format (extension ".ogv").

Magnifier

Demonstration of magnifier features - MagnifierDemo.ogv (86.3M).

Orca+Magnifier

Demonstration of Orca's tracking of keyboard focus of UI components driving positioning of the magnified contents - Orca+MagnifierDemo.ogv (16.4M).

Magnifier Preferences Dialog

There are a couple of approaches to provide a GUI that allows users access to the magnifier's preferences (GSettings). They fall into two categories: a zoom options dialog for general use that is part of GNOME's Universal Access Panel, and a tool for testing and demonstrating the GNOME Shell Magnifier.

Universal Access Panel Zoom Options

The zoom options dialog for the Universal Access Panel (part of the GNOME Control Center project), has been merged into that project. A screen shot of the dialog is shown in Figure one, below.

Screen shot of Zoom Options Dialog

Figure 1. Universal Access Panel Zoom Options.

Use of the Universal Access Panel Zoom Options dialog is documented at the Zoom Options Dialog page.

Test Preferences

The purposes of this version of the UI is to test and/or demonstrate the GNOME Shell magnifier. There is a low-priority effort to provide a standalone tarball of this dialog for those who want to try it out. The work was tracked at bug 622414 in bugzilla, but that has stopped. Figure two is a screen shot.

Magnifier Preferences Test Dialog

Figure 2. Demo preferences dialog.

Changing the state of the the widgets in this dialog changes the GSettings values listed above, and they are immediately reflected in the magnifier itself.

Note that the preferences, GSettings, and behaviour are exactly the same in the two versions of the preferences dialog. One dialog is aimed more at testing; the other at end users.

GSettings vs. D-Bus: Common Magnifier Framework

GSettings is GNOME's way of storing persistent user configuration parameters. Magnification preferences will be stored using GSettings. In particular, user preferences will be accessed using GSettings.

GSettings represents another communication path between the magnifier and out-of-process applications such as Orca. (The other communication technique is via D-Bus). For example, the user might set a number of preferences using Orca before launching the magnifier. Those preferences could be saved in the user's GSettings data. When the magnifier is launched, it initializes itself from that data.

This communication path is two way. For example, if the user changes the magnification factor with a key stroke, the associated GSetting value is updated from within the magnifier itself. An out-of-process application could be notified of the change, or react appropriately to the change.

Which magnification settings are persistent user preferences, and which are features that a service provides has been under discussion for some time. The issue was addressed at the AEGIS Seville GNOME Hackfest in Oct, 2010. The outcome is documented on the Common Magnifier Framework page.

D-Bus

The magnifier is published as a D-Bus service, named "org.gnome.Magnifier". As noted in the Common Magnifier Framework age, the implementation will ultimately match that defined by gnome-mag. But, at present, the GNOME Shell magnifier supports only a subset thereof, listed below:

org.gnome.Magnifier

org.gnome.Magnifier.ZoomRegion


GNOME Shell Magnifier is part of the ÆGIS (Ontario) Project. It is funded and supported by the Ontario Ministry of Economic Development and Innovation and the ÆGIS (Europe) Project.

Projects/GnomeShell/Magnification (last edited 2014-02-24 16:32:51 by JosephS)