Accessibility infrastructure in Unity 8 and Mir

Registered by Luke Yelavich

Discuss and track the implementation of accessibility infrastructure for Unity 8/Mir. Primary discussion points include:
 * Screen reader accessibility, the use of the Orca screen reader in Unity 8.
* High contrast, colours, large fonts etc.

Blueprint information

Status:
Not started
Approver:
Jason Warner
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
Luke Yelavich
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

* Some relevant information as to how the accessibility registry works currently, focusing on GTK and X. See https://wiki.ubuntu.com/Accessibility/Mir
* The unity 8 shell will also need to provide magnification with focus tracking.
* The toolkits will also need to be able to query on-screen position of windows, such that the accessibility objects representing on-screen widgets can contain correct coordinate information.
* Orca also needs ot e able to change the behavior of keys on the keyboard. Orca uses capslock in its laptop keyboard shortcut profile as caps lock is the only other common key that is usable as a modifier. On the desktop it uses insert, but not all laptop keyboard have the insert key. Orca currently uses xmodmap to change the behavior of capslock.

Relevant code in at-spi that deals with input events for keyboard/mouse:
https://git.gnome.org/browse/at-spi2-core/tree/registryd/deviceeventcontroller.c
https://git.gnome.org/browse/at-spi2-core/tree/registryd/deviceeventcontroller.h
https://git.gnome.org/browse/at-spi2-core/tree/registryd/deviceeventcontroller-x11.c

(?)

Work Items

Work items:
Implement an interface in unity 8 or Mir to allow the at-spi daemon to register itself to process keyboard, mouse, and touch events: TODO
[themuso] Work with GNOME accessibility upstream to extend the at-spi daemon to be able to register with Unity/Mir: BLOCKED
[themuso] Work with the upstream orca maintainer to refactor things to remove the requirement on GTK: TODO
[themuso] Work with the upstream orca maintainer to provide an interface for 3rd party applications to get/set orca configuration: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.