compiz-mag
7353
Comment: fixed title
|
← Revision 14 as of 2008-08-06 16:31:25 ⇥
3374
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 hardware accelerated magnifier = |
##(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, SvenJaborek * '''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 === | == Assumptions == |
Line 49: | Line 32: |
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: |
== Design == |
Line 53: | Line 34: |
* 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 |
* 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 58: | Line 41: |
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. |
== Optional features == |
Line 62: | Line 43: |
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. |
* 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 == |
Line 68: | Line 53: |
* 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 69: | Line 58: |
== 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. * Ability to jump to window that gains focus, e.g. after clicking "New Mail" - also requires AT-SPI. * Positioning mouse in the center of the screen via one keypress in case it gets lost * Configurability - As many settings as possible should be configurable by the user (but it can be a simple config file to start with). Possible options are (not all must-have!): * Colour and size of the mouse pointer * Mouse guides (e.g. circle, cross,...) * Speed of motion / Sensibility * Position of mouse -> e.g. freely movable versus fixed in center * Fixing a certain area on the screen, e.g. task bar or panel |
== Test/Demo Plan == |
Line 86: | Line 62: |
=== Some desirable features === | == Outstanding Issues == |
Line 88: | Line 64: |
* Variable zoom factor - Fixed factors may not be exactly what 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. * Colour schemes that can be switched on the fly - this is more flexible than the system's fixed colour schemes. Simple invert mechanisms may possibly be adopted from other screen magnifiers?! == Design == 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. 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. 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. == Implementation == === Core === Compiz is created in the c language, same for the xmcm code. 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) 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) === Cursor Tracker === t.b.d. === 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. 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 146: | 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
Accessibility/Specs/compiz-mag (last edited 2008-08-06 16:31:25 by localhost)