Design Team/Proposals/Touchscreen

Touchscreen Support
{| class="wikitable sortable" valign="top" ! Feature description ! Keyboard only hardware ! Keyboard and touchscreen hardware ! Touchscreen only hardware


 * Cursor
 * show always
 * show if trackpad used, hide if screen touched
 * hide always
 * Virtual keyboard
 * not required, but useful for accessibility needs
 * useful in ebook mode
 * essential, needs to appear automatically when a text field is selected (with optional ability to expose/hide for compatibility)
 * Cursor hover hints/palettes
 * accessible
 * accessible when using trackpad
 * accessible only if activated by 'right click' (touch & hold)
 * Keyboard shortcuts
 * accessible
 * accessible when using keyboard
 * not available (must rely on visual icons, HW buttons, or touch gestures)
 * Frame
 * accessible
 * accessible when using keyboard & trackpad
 * needs a touch gesture (swipe in/out from any edge) and/or new button (top left frame corner most likely), same old issues regarding discoverability of the Frame.... No physical home button on XO-3.0 hardware.
 * Buttons & context menu size/spacing
 * OK
 * nice to have them optimized to be touchable
 * size/spacing of buttons and menus needs to be optimised for finger sized interaction
 * hpane/vpane separator theme
 * OK
 * nice to have them optimized to be touchable
 * size menus needs to be optimised for finger sized interaction
 * Screen resolution
 * n/a
 * n/a
 * XO-3.0 is 1024x768, continue to make sure the Sugar shell, and activities are designed to scale well
 * Keyboard shortcut hints
 * continue to add hints
 * continue to add hints
 * hide keyboard hints from touch only UI
 * Scrolling a zoomed paint/drawing view
 * n/a
 * two finger drag to pan/scroll canvas
 * two finger drag to pan/scroll canvas, essential
 * Home favourite activity icons
 * need to increase icon layout size/spacing (larger targets, further apart)
 * blank
 * }
 * Scrolling a zoomed paint/drawing view
 * n/a
 * two finger drag to pan/scroll canvas
 * two finger drag to pan/scroll canvas, essential
 * Home favourite activity icons
 * need to increase icon layout size/spacing (larger targets, further apart)
 * blank
 * }
 * need to increase icon layout size/spacing (larger targets, further apart)
 * blank
 * }
 * blank
 * }
 * }
 * }
 * }

= Other = [CSA: adding here some issues which aren't in the above table, not sure how they fit in]
 * Keyboard hints: show different keyboards for numeric, URL, or free-text input. (For example, TurtleArt wouldn't show the full keyboard when it just needs you to enter a number.)
 * Hover palettes: might need to be offset more from finger location to be useable on touchscreen (so that the finger doesn't cover up the palette when it pops up)
 * Drag to scroll: I prototyped this with "drag from top" / "drag from bottom" to scroll, it wasn't so bad. Simply mapping two-finger scroll to mouse scroll buttons gets you pretty far, although there are some focus issues to deal with -- it should first focus the element under the scroll start location, and *then* send it mouse scroll wheel events
 * Slide to switch zoom levels: just requires binding F12,F13 etc to "zoom out" and "zoom in", so olpc-kbdshim can emit the proper function key instead of trying to remember what zoom level it is in.
 * Uniform support for "mouseover" events: perhaps "swiping down" from a button will reveal its mouseover tool tips, for example. This is a bit of a hack, but it might make all the existing sugar activities which rely on mouseover more usable.