Πως λειτουργεί η προσιτότητα στην επιφάνεια εργασίας GNOME

Η Εργαλειοθήκη προσιτότητας (Accessibility Toolkit, ATK) περιγράφει ένα πακέτο από διεπαφές οι οποίες πρέπει να περιλαμβάνονται στα γραφικά περιβάλλοντα διεπαφών (GUI) ώστε να είναι προσιτά. Οι διεπιφάνειες είναι ανεξάρτητες από την εργαλειοθήκη - εφαρμογές μπορούν να γραφούν σε κάθε εργαλειοθήκη όπως GTK, Motif ή Qt.

Η εφαρμογή των εργαλείων GTK είναι μέσα σε ένα module με το όνομα GAIL (GNOME Accessbility Implementation Library, Βιβλιοθήκη Εφαρνογών Προσιτότητας Επιφάνειας Εργασίας GNOME), η οποία μπορεί να φορτωθεί δυναμικά κατά τη διάρκεια της εκτέλεσης από μια εφαρμογή GTK. Αφού φορτωθεί, εκείνα τα τμήματα της εφαρμογής σας τα οποία χρησιμοποιούν τα κανονικά εργαλεία της GTK θα έχουν ένα βασικό επίπεδο προσιτότητας, χωρίς να χρειστεί καμία αλλαγή της εφαρμογής σας από εσάς τους ίδιους. Αν το GAIL δεν έχει φορτωθεί, τα εργαλεία της GTK θα έχουν μια προεπιλεγμένη εφαρμογή ως προς την προσιτότητα η οποία ουσιαστικά δεν επιστρέφει κάποια πληροφορίας, αν και θεωρητικά συμμορφώνεται στο API της εργαλειοθήλης προσιτότητας. Οι εφαρμογές που χρησιμοποιούν τα χειριστήρια Bonobo, και συγκεκριμένα εκείνα που είναι εκτός διαδικασίας, φορτώνουν επίσης τον κώδικα υποστήριξης της προσιτότητας από το module libgail-gnome. Το αν οι εφαρμογές της επιφάνειας εργασίας GNOME θα φορτώσουν αυτόματα αυτές τις βιβλιοθήκες υποστήριξης της προσιτότητας εξαρτάται από την τιμή ενός gconf κλειδιού, "/desktop/gnome/interface/accessibility"; μια boolean τιμή "αληθές" ("true") ενεργοποιεί την υποστήριξη για τις τεχνολογίες υποβοήθησης και οι εφαρμογές οι οποίες καλούν την gnome_program_init θα φορτώσουν αυτόματα τις κατάλληλες βιβλιοθήκες προσιτότητας κατά την εκτέλεση. Οι καθαρές GTK+ εφαρμογές, για παράδειγμα εκείνες που χρησιμοποιούν την εργαλειοθήκη gtk+ αλλά δεν συνδέονται με την βιβλιοθήκη libgnome, βασίζονται στην τιμή της μεταβλητής περιβάλλοντος GTK_MODULES, η οποία πρέπει να είναι ρυθμισμένη στο "gail:atk-bridge" ούτως ώστε να ενεργοποιηθεί η υποστήριξη τεχνολογίας προσιτότητας.

Most assistive technologies running on other desktops have historically found it necessary to maintain a complex off-screen model of the desktop applications, based on snooping of OS events, use of unsupported OS and application features and API, and other highly non-portable techniques. This has made assistive technology support somewhat "brittle" and highly OS- and application-specific, even application-version specific. In contrast, on the GNOME Desktop, all the information required by the ATs is provided by the running applications, via the GNOME Accessibility Framework, to a toolkit-independent Service Provider Interface (SPI). The SPI provides a means for UNIX-based ATs, such as screen readers and screen magnifiers, to obtain accessibility information from running applications via a consistent, stable API, and can eliminate the need for an off-screen model in many cases. Accessibility support for applications is "built in" to application toolkits via toolkit-appropriate APIs (for instance, ATK for most native C applications and the Java Accessibility API for Java apps), and exported to the common "AT-SPI" interface via the relevant "bridge" (see diagram below).

Φιγούρα 1-1Αρχιτεκτονική προσιτότητας επιφάνειας εργασίας GNOME

Η υποστήριξη προσιτότητας είναι ενσωματωμένη στην Επιφάνεια Εργασίας GNOME, αυτό σημαίνει ότι εφαρμογές οι οποίες δημιουργήθηκαν με χρήση των κανονικών εργαλείων GNOME έχουν υποστήριξη για τις τεχνολογίες προσιτότητας με την προϋπόθεση ότι τα εργαλεία δεν έχουν χρησιμοποιηθεί με μη φυσιολογικούς τρόπους οι οποίοι έρχονται σε σύγκρουση με αυτήν την ενσωματωμένη υποστήριξη.

A gtk+/GNOME widget is accessible if its use follows the general accessibility guidelines elsewhere in this document, and it implements the ATK interfaces appropriate to its role in the user interface. ATK implementations are provided for the "stock" GNOME toolkit widgets (i.e. non-deprecated gtk+ and GNOME widgets), and in many cases new widgets which derive trivially from existing GTK+ or GNOME widgets will also inherit suitable accessibility support.

Though GNOME's built-in accessibility support provides significant functionality without any accessibility-specific code changes on the part of the application, applications can often improve on the default descriptions provided for some of the widgets, and tailor them to that widget's specific purpose in your application, via straightforward calls to ATK methods in the application. For instance, in most cases applications should add or change the textual descriptions for these widgets with the appropriate ATK function call, so that an assisitive technology can describe their purpose or state to the user. See Coding Guidelines for Supporting Accessibility for more information.

If your application uses custom widgets, you may have to do some work to expose those widgets' properties to assistive technologies. See Making Custom Components Accessible and Examples that Use the Accessibility API for more information.

Για περισσότερες και πιο αναλυτικές πληροφορίες σχετικά με τα GTK/GTK+, δείτε (στα Αγγλικά)Εγχειρίδιο χρήσης GTK+, το κομμάτι για το GTK στο εγχειρίδιο του ATK, το φιλοξενούμενο στο GNOMEΕγχειρίδιο GTK+ 2.0 και το επίσημο GTK+ FAQ.