compiz-mag

Differences between revisions 5 and 14 (spanning 9 versions)
Revision 5 as of 2006-06-18 15:13:19
Size: 6677
Editor: p508E6C84
Comment:
Revision 14 as of 2008-08-06 16:31:25
Size: 3374
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Accessibility/Specs/XGL-mag
= A simple on-screen keyboard =
##(see the SpecSpec for an explanation)
Line 4: Line 3:
 * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/compiz-mag
 * '''Created''': 2006-06-02 by HenrikOmma
 * '''Contributors''': HenrikOmma, Sven Jaborek
 * '''Packages affected''':
 * '''Status:''' '''BRAINDUMP'''
''Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.''

 * '''Launchpad Entry''': UbuntuSpec:compiz-mag
 * '''Packages affected''': compiz
Line 12: Line 10:
A new screen magnifier for low vision users using compiz-based rendering technology. Extend the beryl zoom plugin with cursor tracking functionality to provide a powerful magnifier for low vision users.

== Release Note ==

Leveraging the compositing power of Compiz/Beryl we have created a next-generation magnifier for low-vision users. The new technology is both more responsive and more user friendly than previos tools.
Line 16: Line 18:
The current magnifier gnome-mag is slow and resource instensive. compiz holds the promise for much better magnification rendering via hardware accelleration. The current magnifier gnome-mag is slow and resource instensive. compiz can rovide much better magnification rendering via hardware accelleration.
Line 18: Line 20:
== Use cases == == Use Cases ==
Line 22: Line 24:
Take this news page: http://news.bbc.co.uk/1/hi/uk/4752819.stm
It has some text and pictures and a great deal of non-essential
navigation items (most other newspapers are worse). For the sake of
example, let's consider a user who might use 2x zoom to get a general
overview of a desktop of webpage layout but would need 8x zoom on normal
text to read it.
[[http://news.bbc.co.uk/2/hi/business/6610901.stm|This]] (randomly chosen) news page has both text and pictures and a great deal of non-essential navigation items. A low-vision user wants to get a general overview at 2x zoom, but wants to read the text at 8x zoom. With compiz-mag she can switch between the two with a keystroke.
Line 29: Line 26:
It would be useful to be able to zoom in on the different elements
separately. Imagine that you could select the picture first. Press some
hotkey to skip to the picture, and have the picture by itself displayed
at 8x zoom where you can pan around. Another keystroke would give you
the caption overlayed at the bottom of the picture in a high contrast
colour or it could be read out via the screen reader.
=== Creating a Research Paper ===
Line 36: Line 28:
You then want to move on to the main body text. You return to the 2x
overview page. You press another hot key to highlight some text. The
first block of text appears with a heavy bright red (customisable of
course) frame around it or with a full rectangle at 50% opacity so you
can pick out the block you want. the next hotkey or mouse command would
then zoom that text up to 8x, filling most of the screen. It would be
wrapped to fit nicely and could be scrolled if needed. It would be as if
you selected the text, copied and pasted it into a special app that
would magnify it to your liking or read it out if you preferred. You
could also select your own fonts.
Multiple windows with multiple text sizes and colors can often be difficult for users to handle. The user should ultimately be able to comfortably see all information, write efficiently, and navigate efficiently. Ultimately this use case can be expanded with optional features shown below. For example when zoomed in to 3x a web page may still be using extremely small font whereas an application may be using "normal" font. The zooming should allow for window specific zooming
Line 47: Line 30:
=== Document composition ===

In using a word processor like OpenOffice you can set the font size very
large or the zoom to a high factor in OpenOffice itself, which might be
sufficient to read the text. However there are several problems:

 * The text entry cursor is narrow and difficult to spot
 * The toolbar buttons, slider widgets, etc. are small and in low
contrast grey tones
 * The menubar menus and context menus are small

You could go for a large high-contrast theme, but in fact you might
prefer to keep the buttons and widgets small so they don't take up too
much space and distract from the text you are working on.

Solution: You should be able to hover over the toolbar and have the
buttons zoomed by 8x and the contrast enhanced. You move the mouse over
to the right and the scrolling widget grows a large handle in high
contrast that you can easily grab and scroll. The context menus also
appear zoomed.


== Scope ==

=== The must-have features ===
 
 * Fixed zoom factors - This could be pre-set by the user, but it should
also be possible to switch zoom levels on the fly with a hotkey
 * Ability to follow the text-entry cursor - This requires AT-SPI magic,
but is a vital feature.
 * Configurability - As many settings as possible should be configurable
by the user (but it can be a simple config file to start with).


=== Some desirable features ===

 * Variable zoom factor - Fixed factors may not be exactly want you
want. It would be cool to be able to adjust the zoom level precisely
with the mouse wheel, say.
 * Scriptability - Again Orca has shown that being able to tailor the
behaviour of the AT app to your working application can be very useful.
This might well apply to the magnifier as well.
 * Fit window to zoom area - If you are working in Gedit and you have
zoomed in to a comfortable level, you now want to make sure that the
whole window fits into the viewable area. You then press a hot key and
Gedit's window is resized so that it fits.
 * Interaction with screen readers and braille systems - This adds
another level of complexity but could potentially be extremely powerful.
You could browse at a moderate zoom level and then have sections of text
read out to you.
== Assumptions ==
Line 100: Line 34:
We are going to extend the zoom plugin, which exists in compiz. It works like a magnifier glass, where the glass is on fullscreen size. The performance of the zoom plugin is impressive and moving is very smoothly without high CPU usage like on gnopernicus.
Another possible solution is the xmcm project (sourceforge), which works with X extensions like composite.
At the moment the plugin system in compiz bashes us with some constraints at the keyboard-input front. For a proper implemention we'll have to access (and perhaps modify) the keyboard input and input redirection is not yet implemented in the xgl server.
 * Fixed zoom factors - user-defined zoom levels that can be accessed with a hotkey
 * Follow the text-entry cursor - using AT-SPI magic to get the location
 * Jump to window that gains focus
 * Mouse cursors - different size and colour options and a cross cursor
 * Variable zoom factor - adjust using keys or mouse wheel
 * Panning based on keyboard and/or mouse input
Line 104: Line 41:
The communication interface should work through dbus. Compiz is going to implement dbus this in the future, because other plugins need to be remoted too. == Optional features ==
Line 106: Line 43:
The cursor tracking will work on at-spi much like it does in gnopernicus. The cursor tracking will be a standalone module, communicating with the core via the interface.
 * Different panning modes, including central cursor and edge-push (see gnome-mag)
 * Sensitivity of zooming and panning should be configurable
 * Define the zoom region to be part of or the whole screen
 * Have zones where input combinations move you automatically to the zoomed spot (i.e. the menu bars)
 * Multiple screen magnification with various levels of magnified windows on each.
 * Allow Zoomtext Keyboard to work on Linux
 * Carry your settings on a USB stick to be used on any computer
 * Extend compiz-mag support for logins
Line 110: Line 53:
=== Core ===
Compiz is created in the c language, same for the xmcm code.
 * Use internal Compiz information to fetch focus changes
 * extend the compiz plugin to be controllable from external applications
 * Direct cursor tracking with information from AT-SPI
 * dbus for communication between apps
Line 113: Line 58:
The interface to the core will need to transfer these information:
 * magnifier_glass_position(x,y,s)
 (x,y: coordinates of top-left pixel, possible values in desktop size range.
 s: screen, possible value number of virual desktops ).
 * magnification_scale(int x)
== Test/Demo Plan ==
Line 119: Line 60:
Its usefull to transfer commands like to control the core, then others can build a gui for it.
 * start_magnification(settings)
 * stop_magnification()
 * move_to_window (windowid)
 * fit_window_into_glass (windowid)
Line 125: Line 61:
=== Cursor Tracker ===
t.b.d.
Line 128: Line 62:
=== Script Engine ===
Both use cases need a fair bit of information from the application
via AT-SPI and there needs to be custom script knowledge about the
application and individual user preferences. In the case of the BBC
website the system would also need to know where the useful information
usually is located.
== Outstanding Issues ==
Line 135: Line 64:
The script engine can be programmed in every language, since it only needs to communicate to the core.

== Outstanding issues ==

Input-redirection in xgl is needed for a proper compiz plugin.
Build problems with xmcm on newer systems like dapper and fc5.
Lack of input redirection in X.org limits the possibilities, specially for different panning modes and sensitivity. The mouse pointer has to be at the correct place at any given time, which means it has to be synchronized with the zoomed area to enable input.
Line 145: Line 69:
== References ==
 

----
CategorySpec

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

  • Launchpad Entry: compiz-mag

  • Packages affected: compiz

Summary

Extend the beryl zoom plugin with cursor tracking functionality to provide a powerful magnifier for low vision users.

Release Note

Leveraging the compositing power of Compiz/Beryl we have created a next-generation magnifier for low-vision users. The new technology is both more responsive and more user friendly than previos tools.

Rationale

The current magnifier gnome-mag is slow and resource instensive. compiz can rovide much better magnification rendering via hardware accelleration.

Use Cases

Reading a news website

This (randomly chosen) news page has both text and pictures and a great deal of non-essential navigation items. A low-vision user wants to get a general overview at 2x zoom, but wants to read the text at 8x zoom. With compiz-mag she can switch between the two with a keystroke.

Creating a Research Paper

Multiple windows with multiple text sizes and colors can often be difficult for users to handle. The user should ultimately be able to comfortably see all information, write efficiently, and navigate efficiently. Ultimately this use case can be expanded with optional features shown below. For example when zoomed in to 3x a web page may still be using extremely small font whereas an application may be using "normal" font. The zooming should allow for window specific zooming

Assumptions

Design

  • Fixed zoom factors - user-defined zoom levels that can be accessed with a hotkey
  • Follow the text-entry cursor - using AT-SPI magic to get the location
  • Jump to window that gains focus
  • Mouse cursors - different size and colour options and a cross cursor
  • Variable zoom factor - adjust using keys or mouse wheel
  • Panning based on keyboard and/or mouse input

Optional features

  • Different panning modes, including central cursor and edge-push (see gnome-mag)
  • Sensitivity of zooming and panning should be configurable
  • Define the zoom region to be part of or the whole screen
  • Have zones where input combinations move you automatically to the zoomed spot (i.e. the menu bars)
  • Multiple screen magnification with various levels of magnified windows on each.
  • Allow Zoomtext Keyboard to work on Linux
  • Carry your settings on a USB stick to be used on any computer
  • Extend compiz-mag support for logins

Implementation

  • Use internal Compiz information to fetch focus changes
  • extend the compiz plugin to be controllable from external applications
  • Direct cursor tracking with information from AT-SPI
  • dbus for communication between apps

Test/Demo Plan

Outstanding Issues

Lack of input redirection in X.org limits the possibilities, specially for different panning modes and sensitivity. The mouse pointer has to be at the correct place at any given time, which means it has to be synchronized with the zoomed area to enable input.

BoF agenda and discussion


CategorySpec

Accessibility/Specs/compiz-mag (last edited 2008-08-06 16:31:25 by localhost)