Accessibility Transformation Brainstorming

Ideas for User Interface Transformation

This list of potential user interface transformations that might be supported by the FLUID framework was compiled during a working meeting on Thursday, May 2nd with the ATRC development team and Richard Schwertdfeger from IBM. This is by no means a comprehensive or definitive list; just an unordered, unprioritized collection of ideas about transformation. Please feel free to add to it.

Categories of Transformations

  • Layout & Presentation
  • Navigation (ie. Changes to the relationships of parts of the user interface to each other)
  • Control

Layout and Presentational Transformations

  • Density and complexity
    • of information
    • of user interface controls
  • Font sizing
  • Font leading and tracking
  • Borders and colours
  • Spacing
  • Text and layout direction (vertical vs. horizontal, left vs. right)
  • Linearization and flattening of columns, etc.
  • The appearance of textual cues: sarcasm, emphasis, humour, etc
  • Form field indications: required vs. optional, etc.
  • Speed of transitions
  • Self-voicing
  • Link affordances:
    • external links
    • navigational cues
    • purpose of a link(eg. definitions, relationships, tags, etc.)

Navigational and Behavioural Transformations

  • Time-space condensations - separation of elements that were presented simultaneously into a linear sequence, or vice versa.
    • Auto-portalisation - opening of "windows" in-place to other parts of application state without losing view context on demand
  • Focus cues
  • Concept maps
    • Describes the structure or overall shape of a user interface visually, showing regions and how they relate to each other
  • Importance levels (eg. politeness in live regions, etc.)
  • Sorting (ascending vs. descending)
  • Breadcrumbs
  • Tool tips and expanded descriptions

Control Transformations

  • Auto-completion, word prediction, especially in context- or application-specific ways
  • Toolbars and menus

Other

  • Accessibility compliance of content

Modalities

Control Types

Visual

Pointer

Auditory

Keyboard

Textual

Voice

 

Switch

 

On-screen keyboard: pointer vs. scanning

Transformation in Context

For a user who has screen magnification enabled or is using a low resolution display, there are certain types of transformations that are most important. The ability to linearize the screen, flattening columns and laying out the page vertically is particularly effective. The user interface needs to be flexible enough to respond to this need, as well as to handle presentational and styling issues such as effective word-wrapping and re-sizing of UI controls.

Transformation and Non-transformation 

An "all-win" modality for transformation is non-transformation - presenting alternative modes for access in one and the same view as a "fat interface" (with possibly latent behaviours). For example, a reordering control could be simultaneously accessible by Web 1.0-style numeric dropdowns as well as Web 2.0-style drag and drop. Alternatively, parts of the interface which could become dynamically editable when clicked on, but simultaneously presented with old-style navigation controls leading to a dedicated view for editing. Where this can be achieved it is ideal, since the form of the interface remains familiar to all users, especially where the "advanced" rendering would gracefully degrade to the basic rendering in the presence of primitive clients.

Except, of course, in cases where we can deliver a significantly improved user experience by designing alternative components that are specifically designed for a particular control scenario, assistive technology, or personal need. One of the potentially exciting abilities of FLUID is to, through transformation, deliver a user experience that is designed for unique needs rather than optimized for nobody in the universal design scenario.

Implementing UI Transformation

Metadata and Preferences are critical.

  • What information do we need to know to perform these transformations? How should this be represented to the user, and how do they interact with the transformation behaviour?
  • When should we ask for preferences?
    • Ahead of time, in the abstract (eg. PreferAble; System Preferences, etc.)
    • In context, when interacting with the user interface
  • How abstract should the preferences be? How do we show the user the affect their preferences settings will have on the application?