Independent User Interface (IndieUI) is a way for user actions to be communicated to web applications. IndieUI will make it easier for web applications to work in a wide range of contexts — different devices, different assistive technologies (AT), different user needs.
For example, if a user wants to scroll down a page, they might use their finger on a touch screen, or click a scroll bar with a mouse, or use a scroll wheel, or press Page Down on a keyboard, or say "scroll down" with a voice command. All those different user actions can be translated into a simple IndieUI scroll event. (Specifically,
scrollrequest(x/y), as shown in the illustration.)
IndieUI will allow web application developers to get these events from different devices without having to recognize how the user performed the action. With IndieUI, AT will have a simple set of events to control web applications, and web application developers will have a uniform way to design applications that work for multiple devices and contexts.
(Additional perspectives are in the blog post: IndieUI: Events expands user interface interactions for mobile and more.)
Requirements and use cases that IndieUI intends to address are available in Requirements for IndieUI: Events 1.0 and IndieUI: User Context 1.0.
IndieUI includes two technical specifications: IndieUI: Events and IndieUI: User Context. They are introduced below and explained in more detail in the Current Work section of the IndieUI Working Group page.
IndieUI: Events maps user input events to intended function. For example, a user scrolling a page is a series of touch events closely related in time and space. This can be complicated for web applications to process, particularly because the expected gestures vary by platform. IndieUI will allow the device to send a simple "scroll" event to the application, thus simplifying the work needed by the web application developer.
IndieUI: Events drafts:
- Working Draft of IndieUI: Events is approved by the Working Group
- Editors' Draft of IndieUI: Events has more recent in-progress work, which might include early ideas that are not yet well developed, vetted, or approved
IndieUI: User Context defines a set of preferences that users can choose to expose to web applications, and an API for user agents to access the preferences and listen for changes. Users can set preferences for features such as screen size, font size, and color. Users with disabilities can provide information about assistive technologies in use, indicate that the display is in an accessibility mode, and indicate what kind of subtitles and audio descriptions they need. Web applications can use this information to optimize the presentation without a requirement to target a specific device, operating system, or locale.
IndieUI: User Context drafts:
- Working Draft of IndieUI: User Context 1.0 is approved by the Working Group
- Editors' Draft of IndieUI: User Context has more recent in-progress work, which might include early ideas that are not yet well developed, vetted, or approved
IndieUI is developed through the W3C Process introduced in How WAI Develops Accessibility Guidelines through the W3C Process: Milestones and Opportunities to Contribute.
We welcome your input, including commenting on drafts announced for review and more actively participating in the Working Group.