Οδηγίες για τον προγραμματισμό σε σχέση με την υποστήριξη της προσιτότητας
Εδώ παραθέτονται κάποιες ενέργειες που μπορείτε να εφαρμόσετε στον κώδικά σας για να βελτιώσετε τη λειτουργία του προγράμματός σας όσον αφορά τιε τεχνολογίες υποβοήθησης. (Μπορείτε να βρείτε μία λίστα ενεργειών για να θυμάστε κατά το σχεδιασμό του γραφικού περιβάλλοντος στην ενότητα Οδηγίες διεπαφής χρήστη για υποστήριξης προσιτότητας πιο κάτω σε αυτό το έγγραφο):
-
Για περιεχόμενα που δεν εμφανίζουν ένα μικρό αλφαριθμητικό (όπως ένα γραφικό κουμπί), καθορίστε ένα όνομα για αυτό με τη συνάρτηση atk_object_set_name(). Ενδεχομένως να επιθυμείτε να το κάνετε για κουμπιά με εικόνες, για πλαίσια που παρέχουν λογικές ομάδες, για περιοχές κειμένου, κοκ.
-
Αν δε μπορείτε να παρέχετε μία συμβουλή οθόνης για ένα περιεχόμενο, χρησιμποιήστε αντί για αυτή τη συνάρτηση atk_object_set_description() για να παρέχετε μία περιγραφή που οι τεχνολογίες υποβοήθησης μπορούν να προσφέρουν στο χρήστη. Για παράδειγμα, για να παρέχετε μία προσιτή περιγραφή για ένα κουμπί εφαρμόστε τα εξής:
Παράδειγμα 1-1 Παρέχοντας μια προσιτή περιγραφή για ένα GtkButton{ AtkObject *obj; obj = gtk_widget_get_accessible(button); atk_object_set_description(obj,_("Κλείνει το παράθυρο")); }
-
Χρησιμοποιήστε την atk_image_set_description() για να δώσετε μια περιγραφή κειμένου για όλες τις εικόνες και τα εικονίδια του προγράμματός σας.
-
Αν μερικά από τα στοιχεία μιας λογικής ομάδας, προσπαθήστε να τα βάλετε σε ένα σημείο.
-
Όταν έχετε μια ετικέτα η οποία περιγράφει ένα άλλο στοιχείο, χρησιμοποιήστε την atk_relation_set_add_relation() έτσι ώστε οι τεχνολογίες υποβοήθησης να μπορούν να βρουν το στοιχείο με το οποίο η ετικέτα έχει συσχετιστεί. (Εάν συσχετίσετε την ετικέτα με το στοιχείο χρησιμοποιώντας την gtk_label_set_mnemonic_widget(), τότε ο συσχετισμός ATK_RELATION_LABEL_FOR δημιουργείται αυτόματα, έτσι ο κώδικας που ακολουθεί δεν είναι απαραίτητος):
Παράδειγμα 1-2 Συσχετίζοντας μια ετικέτα GtkLabel με ένα GtkWidget{ GtkWidget *widget; GtkLabel *label; AtkObject *atk_widget, *atk_label; AtkRelationSet *relation_set; AtkRelation *relation; AtkObject *targets[1]; atk_widget = gtk_widget_get_accessible(widget); atk_label = gtk_widget_get_accessible (GTK_WIDGET(label)); relation_set = atk_object_ref_relation_set (atk_label); targets[0] = atk_widget; relation = atk_relation_new(targets,1, ATK_RELATION_LABEL_FOR); atk_relation_set_add(relation_set,relation); g_object_unref(G_OBJECT(relation)); }
-
Αν δημιουργείτε ένα προσαρμοσμένο γραφικό συστατικό, βεβαιωθείτε ότι αυτό υποστηρίζει την προσιτότητα. Τα προσαρμοσμένα περιεχόμενα που εξαρτώνται από άλλα γραφικά συστατικά GTK θα αντικαθιστούν τις πληροφορίες προσιτότητας που κληρονομήθηκαν όπου αυτό είναι απαραίτητο. Για περισσότερες πληροφορίες, δείτε την ενότητα Δημιουργία προσιτών προσαρμοσμένων περιεχομένων.
-
Μην αφήνετε κάτι που το έχετε δωρεάν! Αν το περιβάλλον χρήση σας έχει ένα στοιχείο που δεν είναι προσιτό, οποιαδήποτε περιεχόμενα μέσα σε αυτό το στοιχείο ενδεχομένως γίνουν μη προσιτά επίσης.