1 / 44

Development of Accessible E-documents and Programs for the Visually Impaired

Development of Accessible E-documents and Programs for the Visually Impaired. Accessibility in other platforms. 1. Today topics. Linux console accessibility Accessibility in gnome Mac os accessibility. 2. Linux console. relatively simple text only environment

lefty
Télécharger la présentation

Development of Accessible E-documents and Programs for the Visually Impaired

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Development of Accessible E-documents and Programs for the Visually Impaired Accessibility in other platforms

  2. 1. Today topics • Linux console accessibility • Accessibility in gnome • Mac os accessibility

  3. 2. Linux console • relatively simple text only environment • easily readable by screen readers • Colors are used to "highlight" the text • Applications are controlled mainly from keyboard

  4. 3. Linux console (2) • screen reader can track color-based cursors (it is possible to define cursor color patterns,...) • It is good idea to use system cursor if possible • There is ncurses library for creating text based windows • ncurses windows are accessible

  5. 4. Linux console (3) • There are many different screen readers for linux console: • yasr (yet another screen reader): http://yasr.sourceforge.net • SpeakUp: http://www.speakup-project.org • BRLTTY (braille terminal):http://mielke.cc/brltty • ...

  6. 5. Linux graphical user interface • Mostly used environments: • Gnome • KDE (K Desktop Environment)

  7. 6. Gnome accessibility • Gnome accessibility architecture (GAA) provides standardized interface between assistive technologies (on the one side) and applications and the user's desktop (on the other side) • We will concentrate on application-part of the architecture

  8. 7. Definitions • GTK (GIMP Toolkit): cross-platform widget toolkit for creating graphical user interfaces • CORBA (Common Object Request Broker Architecture): standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together • AT-SPI (Assistive Technology Service Provider Interface): was developed for interoperability between different toolkits,

  9. 8. Architecture

  10. 9. Architecture (2) • Three elements • AT-SPI aware applications (servers) • Assistive technologies (clients) • One accessibility broker

  11. 10. AT-SPI Applications • Applications that offer information about their user interface via the AT-SPI protocol: • Gnome applications: Based on GTK toolkit which optionally loads GAIL (Gnome Accessibility Implementation Library) a bridge between Gnome widgets and ATK

  12. 11. AT-SPI Applications (2) • Second library: bridge between ATK and AT-SPI used for example by Mozilla which does not use GTK but implements the ATK api within the application • JAF (Java Accessibility framework ): a bridge to AT-SPI

  13. 12. Assistive technologies • Applications interested in requesting information about the user interfaces of AT-SPI aware applications (screen readers) • or in triggering actions in these applications (like an on-screen keyboard which needs to send keystrokes)

  14. 13. Accessibility broker • A daemon that coordinates the communication between AT-SPI aware applications and assistive technologies • Applications registers with the broker to offer its information • A.T. may add event listeners to the broker and be informed about changes in registered application

  15. 14. Interface overview • Basic idea of ATK and AT-SPI: to provide an accessibility object for each user-visible UI component • Basic class: contains methods for information common for all widgets (state, relations to other widgets,...) • Specialized interfaces: for particular ui components

  16. 15. Core classes • names: Accessible / AtkObject • Base classes for all accessibility handling related to a given widget • Contains methods for enquiring and changing important properties (name, description, relation to other objects, role, state)

  17. 16. Core classes(2) • Methods for handling notifications when properties of the widget change • Methods for determining the parent and the children of the widget

  18. 17. Event listeners management • names: AtkUtil (class) / Application (interface) • Methods for adding and removing event listeners • Methods for enquiring the name and version of toolkit

  19. 18. Specialized accessibility interfaces • Action / AtkAction: • Should be implemented if the user can directly interact with the corresponding widget, as for example with buttons or scroll bars. • Contains methods for enquiring the names and descriptions, for actions and for triggering these actions

  20. 19. Specialized accessibility interfaces (2) • Component / AtkComponent: • Should be implemented for all widgets that have a screen representation • Contains methods for enquiring the screen position • adding and removing a focus handler • grabbing the focus

  21. 20. Specialized accessibility interfaces (3) • Selection / AtkSelection: • should be implemented for all widgets whose child widgets can be selected • contains methods for selecting and deselecting children • For enquiring the selection status of a given child • for enquiring the references to the selected children

  22. 21. Specialized accessibility interfaces (4) • AtkDocument: • should be implemented for widgets that are associated with the Document Object Model (DOM) • It is ignored within the current bridge to AT-SPI as there is no standard way to provide access to an application's DOM tree

  23. 22. Specialized accessibility interfaces (5) • Image / AtkImage: • should be implemented for widgets that contain image or pixmap graphics • contains methods for enquiring the screen position of the image • For enquiring or setting a textual description of the image

  24. 23. Specialized accessibility interfaces (6) • Table / AtkTable: • should be implemented for widgets that order their children like cells within a table • contains methods for enquiring row- and column headers • For enquiring a description of the contents of the table • For translating between cell positions and child numbers

  25. 24. Specialized accessibility interfaces (7) • Text / AtkText: • Should be implemented for widgets that contain textual contents • Contains methods for handling the cursor

  26. 25. Specialized accessibility interfaces (7) • Enquiring and setting a selection • Enquiring single characters as well as the part of the text that is before or after a given offset. • does not contain methods for changing the text

  27. 26. Specialized accessibility interfaces (8) • EditableText / AtkEditableText: • should be implemented for widgets that contain editable textual contents. • The Text interface is also implemented

  28. 27. Specialized accessibility interfaces (9) • Contains methods for setting the complete text • For inserting a given text at a given offset • For deleting some part of the text • For the standard cut, copy and paste functions

  29. 28. Resources • Orca (screen reader for Gnome environment): http://live.gnome.org/Orca • If you want to try: part of Ubuntu linux (after boot from CD): http://www.ubuntulinux.org • Gnome accessibility developers guide: http://library.gnome.org/devel/accessibility-devel-guide/nightly/ • Gnome accessibility architecture: http://accessibility.kde.org/developer/atk.php

  30. 29. Mac OS accessibility • Two frameworks for creating user interfaces (cocoa, carbon) • In Mac OS X 10.2 Apple introduced the accessibility framework • Accessibility protocol: implemented in both frameworks, allows applications themselves to a.t. • APIs: used by assistive technologies to drive the user interface of an application

  31. 30. Mac OS accessibility model • Each UI component is represented by accessibility object(AO) • AOs are organized in hierarchy defined by parent-child relationship • E.G. app window may contain buttons, ao of app window manages a list of children (AOs of buttons) and each button knows its parent • AOs of menu bar and windows in application are children of application AO • Application AO is a child of system-wide AO

  32. 31. Mac OS accessibility model (2)

  33. 32. Accessibility object • Similar to IAccessible interface • Provides attributes (name, description, role, role description, ...) • and methods (actions): Press, increment and decrement, confirm, cancel,... • Each action has a description property • Particular getters and setters of attributes and actions are implemented if required

  34. 33. Communication • Similar to technologies which we know from other platforms • Messages from AT to get an information about an AO and to request the performance of actions • Notifications triggered by AOs that at's can listen for

  35. 34. Example of interaction • The user says, “Open Preferences window.” • The screen reader sends a message to the application accessibility object, asking for its menu bar attribute, which is a reference to the menu bar accessibility object.

  36. 35. Example of interaction (2) • It then queries the menu bar for a list of its children, and queries each child for its title attribute until it finds the one whose title is the application’s name (that is, the application menu).

  37. 36. Example of interaction (3) • A second iteration lets it find the Preferences menu item within the application menu. • Finally, the screen reader tells the Preferences menu item to perform the press action.

  38. 37. Example of interaction (4) • The application opens the Preferences window and then the window sends a notification broadcasting that a new window is now visible and active. • The screen reader, assuming that it registered to be notified when a new window opens, queries the window for a list of its attributes. Assuming that the window accessibility object contains a children attribute, it then queries the accessibility object for the value of its children attribute.

  39. 38. Example of interaction (5) • To each child of the window accessibility object, the screen reader sends a query asking for a list of its attributes. • It then queries the child for the values of its role, role description, and (if it exists) children attributes.

  40. 39. Example of interaction (6) • Among the responses, the screen reader learns that the pane contains several children (for example, three checkboxes). • The screen reader queries each checkbox, asking for the values of role, role description, value and children

  41. 40. Example of interaction (7) • The screen reader, having learned what objects (controls in this case) are accessible in the window, reports this information to the user using speech synthesis. • The user might then ask for more information about one of the checkboxes.

  42. 41. Example of interaction (8) • The screen reader queries the specified checkbox, asking for the value of its help attribute (assuming it exists). It reports this string to the user using speech synthesis. • The user then tells the screen reader to check the checkbox.

  43. 42. Example of interaction (9) • The screen reader sends a message requesting that the checkbox’s value attribute be set to 1. • The checkbox accessibility object broadcasts that the value of its value attribute has changed.

  44. 43. Resources • Accessibility overview: http://developer.apple.com/DOCUMENTATION/Accessibility/Conceptual/AccessibilityMacOSX/OSXAXIntro/chapter_1_section_1.html

More Related