# Έλεγχοι

## Αποτελεσματική χρήση ελέγχων

Το GNOME παρέχει ένα σύνολο ελέγχων, γνωστών επίσης ως γραφικά συστατικά, που επιτρέπουν στους χρήστες να αλληλεπιδράσουν με τις εφαρμογές σας. Χρησιμοποιώντας αυτούς τους ελέγχους κατάλληλα και χωρίς αλλαγή της τυπικής τους συμπεριφοράς είναι σημαντικό. Αυτό επιτρέπει στους χρήστες να προβλέψουν τα αποτελέσματα των ενεργειών τους και έτσι να μάθουν τη χρήση της εφαρμογής σας πιο γρήγορα και αποτελεσματικά. Οι έλεγχοι που συμπεριφέρονται με άτυπους τρόπους καταστρέφουν το νοητικό πρότυπο εργασίας της εφαρμογής σας στον χρήστη και μειώνουν το νόημα της οπτικής γλώσσας της διεπαφής.

## Ορολογία

Αν και είναι γνωστά ως "γραφικά συστατικά" στα APIs του GNOME και στην τεκμηρίωση της ανάπτυξης, μην χρησιμοποιείτε αυτόν τον όρο στη διεπαφή ή την τεκμηρίωση του χρήστη. Να αναφέρεσθε σε αυτά με τα ειδικά ονόματά τους (για παράδειγμα, "κουμπιά" ή "μενού"), ή με το γενικό όνομα "έλεγχοι".

## Ευαισθησία

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

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

Δύο πλαίσια ελέγχου: ενεργό (επάνω) και ανενεργό (κάτω)

Στιγμιότυπο που εμφανίζει την οπτική εμφάνιση των ενεργών και μη ενεργών ελέγχων πλαισίου ελέγχου

### Κλειδωμένοι έλεγχοι

Σε ένα περιβάλλον που χειρίζεται δίκτυο, όπως έναν υπολογιστή εργαστηρίου, οι διαχειριστές του συστήματος συνήθως θέλουν να "κλειδώσουν" τις τιμές συγκεκριμένων ρυθμίσεων, ή να τις αφαιρέσουν από την διεπαφή του χρήστη ολότελα. Αυτό τους διευκολύνει να ανιχνεύσουν προβλήματα που οι χρήστες τους μπορεί να αντιμετωπίσουν. Στο GNOME, ο σωστός τρόπος για τον διαχειριστή του συστήματος να το κάνει αυτό είναι περιορίζοντας την πρόσβαση εγγραφής στα αντίστοιχα κλειδιά GConf σε αυτές τις ρυθμίσεις.

Όταν σχεδιάζετε την εφαρμογή σας, σκεφτείτε ποιες ρυθμίσεις ένας διαχειριστής συστήματος μπορεί να θέλει να κάνει μη διαθέσιμες στους χρήστες. Αυτές μπορεί τυπικά να περιλαμβάνουν:

- Ρυθμίσεις που, εάν οριστούν εσφαλμένα, μπορούν να αποτρέψουν την εφαρμογή από το να λειτουργήσει. Για παράδειγμα, οι ρυθμίσεις μεσολαβητή σε μια εφαρμογή δικτύου.

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

- Ρυθμίσεις που προσαρμόζουν την διεπαφή χρήστη, άλλες από τις απαιτούμενες για πρόσβαση. Για παράδειγμα, συγκεκριμένα μενού, επιλογές προσαρμογής πληκτρολογίου ή εργαλειοθήκης.

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

Δείγμα τμήματος κώδικα που εμφανίζει πώς να κάνετε έναν έλεγχο κλειδωμένου GConf ανενεργό

    if (!gconf_key_is_writable (http_proxy))
            gtk_widget_set_sensitive (http_proxy_field, FALSE)·

Συμπεριλάβετε μια ενότητα για διαχειριστές συστήματος στον οδηγό χρήστη, εξηγώντας ποιες ρυθμίσεις μπορούν να κλειδώσουν και τα αντίστοιχα τους κλειδιά GConf.

Εξηγείστε στον χρήστη γιατί αυτοί οι έλεγχοι δεν μπορούν να επεξεργαστούν αυτήν τη φορά. Μπορείτε να το κάνετε αυτό με στατικό κείμενο, συμβουλές οθόνης σε δικτυακή βοήθεια, ανάλογα με την κατάσταση. Για παράδειγμα:

Παράδειγμα ενός διαλόγου με κλειδωμένους ελέγχους

Στιγμιότυπο που δείχνει ανενεργά στοιχεία ελέγχου μεσολαβητή σε έναν διάλογο ιδιοτήτων του περιηγητή ιστού, κάτω από τον τίτλο "Μόνο ο διαχειριστής του συστήματος μπορεί να αλλάξει αυτές τις ρυθμίσεις"

Σημειώστε ότι αν και δεν μπορούν να επεξεργαστούν, οι ρυθμίσεις είναι ακόμα ορατές και επιλέξιμες και μπορούν να αντιγραφούν στο πρόχειρο.

## Πεδία εισαγωγής κειμένου

Πεδία εισαγωγής κειμένου χρησιμοποιούνται για είσοδο μιας ή περισσότερων γραμμών απλού κειμένου. Στο GTK 2, ο έλεγχος GtkEntry χρησιμοποιείται για εισαγωγή κειμένου μονής γραμμής και το GtkTextView για εισαγωγή κειμένου πολλών γραμμών.

Πεδία εισόδου μονής και πολλών γραμμών

Στιγμιότυπο μέρους διαλόγου, που περιέχει πεδία καταχωρίσεων και μονών και πολλαπλών γραμμών

Κατευθυντήριες γραμμές

- Ονομάστε το πεδίο εισόδου με μια ετικέτα κειμένου από πάνω της ή στα αριστερά της, χρησιμοποιώντας κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στο πεδίο εισόδου.

- Στοίχιση στα δεξιά των περιεχομένων των πεδίων εισόδου που χρησιμοποιούνται μόνο για αριθμητική είσοδο, εκτός και η σύμβαση στις τοπικές απαιτήσεις του χρήστη είναι αλλιώς. Αυτό είναι χρήσιμο σε παράθυρα όπου ο χρήστης μπορεί να θέλει να συγκρίνει δύο αριθμητικές τιμές στην ίδια στήλη ελέγχων. Σε αυτήν την περίπτωση, βεβαιωθείτε ότι οι δεξιές άκρες των σχετικών ελέγχων είναι επίσης στοιχισμένες.

- Όταν ο χρήστης εστιάζει σε ένα πεδίο μιας εισόδου χρησιμοποιώντας το πληκτρολόγιο, τοποθετήστε τον δρομέα κειμένου στο τέλος του υπάρχοντος κειμένου και τονίστε τα περιεχόμενά του (αλλά μην αντικαταστήσετε την υπάρχουσα ΠΡΩΤΕΥΟΥΣΑ επιλογή προχείρου). Αυτό διευκολύνει στην άμεση αντικατάσταση ή προσάρτηση νέου κειμένου, οι δύο πιο κοινές λειτουργίες που εκτελούνται σε πεδία εισόδου.

- Το μέγεθος των πεδίων εισαγωγής κειμένου να δίνεται σύμφωνα με το πιθανό μέγεθος της καταχώρισης. Αυτό δίνει μια χρήσιμη οπτική ένδειξη της ποσότητας της αναμενόμενης καταχώρισης και διαιρεί τον διάλογο διευκολύνοντας τη σάρωση. Μην κάνετε όλα τα πεδία στον διάλογο με το ίδιο πλάτος απλά για να κάνετε το καθετί σε όμορφη παράταξη.

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

- Δώστε μια στατική προτροπή κειμένου για πλαίσια κειμένου που απαιτούν καταχώριση για μια συγκεκριμένη μορφή ή σε μια συγκεκριμένη μονάδα μέτρησης. Για παράδειγμα:

  Το πεδίο εισαγωγής κειμένου με στατική προτροπή κειμένου

  Ένα πεδίο καταχώρισης κειμένου στο οποίο ο χρήστης πρέπει να εισάγει χρόνο, με την ετικέτα "ωω:λλ" δίπλα του για να υποδείξει την απαιτούμενη μορφή

- Όπου είναι δυνατό, δώστε έναν πρόσθετο ή εναλλακτικό έλεγχο που περιορίζει την απαιτούμενη καταχώριση σε μια έγκυρη περιοχή. Για παράδειγμα, δώστε ένα μετρητή ή ολισθητή εάν η απαιτούμενη καταχώριση είναι μία σταθερής περιοχής ακεραίων, ή δώστε πρόσβαση σε έναν έλεγχο GtkCalendar εάν ο χρήστης πρέπει να εισάγει μια έγκυρη ημερομηνία:

  Το πεδίο εισαγωγής κειμένου απαιτεί μια ημερομηνία ως καταχώριση, με ένα κουμπί δίπλα του για εμφάνιση του ελέγχου GtkCalendar για απλοποίηση της εργασίας

  Ένα πεδίο καταχώρισης κειμένου στο οποίο ο χρήστης πρέπει να εισάγει μια ημερομηνία, με ένα κουμπί με ετικέτα "Επιλογή" δίπλα του που να ανοίγει ένα στοιχείο ελέγχου GtkCalendar για απλοποίηση της εργασίας

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

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

- Ο ρυθμός αναλαμπής του δρομέα ορίζεται γενικά από τα XSettings "gtk-cursor-blink" και "gtk-cursor-blink-time". Οι τυπικοί έλεγχοι πακέτου εργαλείου τα χρησιμοποιούν και δεν πρέπει να αλλαχτούν καθόλου σε εφαρμογές. Νέοι έλεγχοι με δρομείς κειμένου πρέπει να σέβονται αυτές τις γενικές τιμές.

### Συμπεριφορά του πλήκτρου επιστροφής

Κανονικά, πατώντας επιστροφή σε έναν διάλογο θα πρέπει να ενεργοποιήσει το προεπιλεγμένο κουμπί του διαλόγου, εκτός και ο εστιασμένος έλεγχος χρησιμοποιεί την επιστροφή για τους δικούς του σκοπούς. Θα πρέπει συνεπώς να ορίσετε την ιδιότητα `activates-default` των περισσότερων πεδίων εισόδου σε TRUE. (Σημειώστε ότι το GtkTextView δεν έχει τέτοια ρύθμιση - πατώντας επιστροφή εισάγει πάντα μια νέα γραμμή.).

Όμως, εάν ο διάλογος σας περιέχει αρκετά πεδία εισόδου που συνήθως συμπληρώνονται σε σειρά, για παράδειγμα όνομα, διεύθυνση και αριθμός τηλεφώνου, σκεφτείτε την ρύθμιση της ιδιότητας `activates-default` σε αυτά τα πεδία εισόδου σε FALSE. Πατώντας επιστροφή θα πρέπει τότε να μετακινήσετε την εστίαση στον επόμενο έλεγχο. Κάνοντας το θα βοηθήσει την αποφυγή του τυχαίου κλεισίματος του παραθύρου πριν να εισαχθούν όλες οι επιθυμητές πληροφορίες από τον χρήστη.

Ως παραπέρα προστασία, να θυμάστε να μην ρυθμίζετε το προεπιλεγμένο κουμπί σε έναν διάλογο μέχρι το ελάχιστο ποσό της απαιτούμενης πληροφορίας να έχει εισαχθεί, για παράδειγμα, αμφότερα τα όνομα χρήστη και κωδικός σε έναν διάλογο σύνδεσης. Πάλι, σε αυτήν την περίπτωση θα πρέπει να μετακινήσετε την εστίαση στον επόμενο έλεγχο όταν ο χρήστης πατά επιστροφή, αντί για απλή παράβλεψη της πληκτρολόγησης.

Εάν χρειάζεται να δώσετε μια συντόμευση πληκτρολογίου που ενεργοποιεί το προεπιλεγμένο κουμπί ενώ ο έλεγχος GtkTextView έχει εστίαση, χρησιμοποιήστε Ctrl επιστροφή.

Σημείωση

Το Gtk προς το παρόν δεν μετακινεί την εστίαση στον επόμενο έλεγχο όταν πατιέται το επιστροφή και είτε `activates-default=FALSE`, είτε δεν υπάρχει προεπιλεγμένο κουμπί στο παράθυρο. Προς το παρόν, η επιστροφή δεν κάνει τίποτα σε αυτές τις καταστάσεις, έτσι να θυμάστε να εφαρμόζετε την συμπεριφορά αλλαγής εστίασης οι ίδιοι.

### Συμπεριφορά του πλήκτρου στηλοθέτη

Κανονικά, πατώντας στηλοθέτης σε ένα πεδίο εισόδου μονής γραμμής θα πρέπει να μετακινείται η εστίαση στον επόμενο έλεγχο και σε ένα πεδίο εισόδου πολλών γραμμών θα πρέπει να εισάγεται έναν χαρακτήρα στηλοθέτη. Πατώντας Ctrl Tab σε ένα πεδίο εισόδου πολλών γραμμών θα πρέπει να μετακινείται η εστίαση στον επόμενο έλεγχο.

Εάν χρειάζεται να δώσετε μια συντόμευση πληκτρολογίου που εισάγει έναν χαρακτήρα στηλοθέτη σε ένα πεδίο εισόδου μονής γραμμής, χρησιμοποιήστε Ctrl Tab. Όμως, είναι απίθανο να βρείτε πολλές καταστάσεις που αυτό είναι χρήσιμο.

## Πλαίσια αυξομείωσης

Ένα πλαίσιο αυξομείωσης είναι ένα πλαίσιο κειμένου που δέχεται ένα εύρος τιμών. Ενσωματώνει δύο κουμπιά βελών που επιτρέπουν στον χρήστη να αυξήσει ή να μειώσει την τρέχουσα τιμή κατά ένα σταθερό ποσό.

Παράδειγμα πλαισίου αυξομείωσης

Ένα απλό πλαίσιο αυξομείωσης ορίζει το διάστιχο μεταξύ μικροεφαρμογών σε έναν πίνακα

Κατευθυντήριες γραμμές

- Χρησιμοποιήστε πλαίσια αυξομείωσης για αριθμητικές εισαγωγές μόνο. Χρησιμοποιήστε μια λίστα ή μενού επιλογής όταν χρειάζεται ο χρήστης να επιλέξει από σταθερά σύνολα δεδομένων άλλων τύπων.

- Χρησιμοποιήστε ένα πλαίσιο αυξομείωσης εάν η αριθμητική τιμή έχει νόημα ή είναι χρήσιμο για τον χρήστη να το ξέρει και η έγκυρη περιοχή καταχώρισης είναι απεριόριστη ή σταθερή μόνο στο ένα άκρο. Για παράδειγμα, ένας έλεγχος για ορισμό του αριθμού των επαναλήψεων κάποιας ενέργειας, ή η τιμή λήξης χρόνου. Εάν το εύρος είναι σταθερό σε αμφότερα τα άκρα, ή εάν οι αριθμητικές τιμές είναι τυχαίες (για παράδειγμα, ένας έλεγχος έντασης), χρησιμοποιήστε στη θέση του έναν ελεγκτή ολισθητή.

- Ονομάστε το πλαίσιο αυξομείωσης με μια ετικέτα κειμένου από πάνω του ή στα αριστερά του, χρησιμοποιώντας κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στο πλαίσιο με βέλη.

- Στοίχιση στα δεξιά των περιεχομένων των πλαισίων αυξομείωσης, εκτός και η σύμβαση στις τοπικές απαιτήσεις του χρήστη είναι αλλιώς. Αυτό είναι χρήσιμο σε παράθυρα όπου ο χρήστης μπορεί να θέλει να συγκρίνει δύο αριθμητικές τιμές στην ίδια στήλη ελέγχων. Σε αυτήν την περίπτωση, βεβαιωθείτε ότι οι δεξιές άκρες των σχετικών ελέγχων είναι επίσης στοιχισμένες.

## Ολισθητές

Ένας ολισθητής επιτρέπει στον χρήστη να επιλέξει γρήγορα μια τιμή από μια σταθερή περιοχή σε σειρά, ή να αυξήσει ή να μειώσει την τρέχουσα τιμή. Ο έλεγχος φαίνεται όπως ο τύπος του ολισθητή που μπορείτε να βρείτε σε μια επιτραπέζια μείξη ήχου ή σε έναν γραφικό ισοσταθμιστή υψηλής πιστότητας. Στο gtk, εφαρμόζετε έναν ολισθητή χρησιμοποιώντας τους ελέγχους GtkHScale ή GtkVScale, για οριζόντιους ή κάθετους ολισθητές αντίστοιχα.

Ένας απλό στοιχείο ελέγχου ολισθητή

Ένας έλεγχος ολισθητή χρησιμοποιείται για να αλλάξει την στερεοφωνική ηχητική ισορροπία μεταξύ αριστερού και δεξιού ηχείου

Κατευθυντήριες γραμμές

- Χρήση ολισθητή όταν:

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

  - είναι χρήσιμο για τον χρήστη να ελέγχει τον ρυθμό αλλαγής της τιμής σε πραγματικό χρόνο. Για παράδειγμα, να παρακολουθεί, τα αποτελέσματα μιας αλλαγής χρώματος σε ένα παράθυρο ζωντανής προεπισκόπησης καθώς σύρει τους ολισθητές RGB.

- Ονομάστε τον ολισθητή με μια ετικέτα κειμένου από πάνω του ή στα αριστερά του, χρησιμοποιώντας κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στον ολισθητή.

- Σημειώστε σημαντικές τιμές μαζί με το μήκος του ολισθητή με σημάδια κειμένου ή υποδιαίρεσης. Για παράδειγμα το αριστερό, δεξιό και κεντρικό σημείο στον έλεγχο ισορροπίας ήχου στο .

- Για μεγάλο εύρος ακεραίων (περισσότερο από 20) και για εύρος αριθμών κινητής υποδιαστολής, σκεφτείτε να δώσετε ένα πεδίο κειμένου ή πεδίο με βέλη που συνδέεται στην τιμή του ολισθητή. Αυτό επιτρέπει στο χρήστη να ορίζει γρήγορα ή να μικρορυθμίζει πιο εύκολα από ότι θα μπορούσε με απλά έναν ολισθητή ελέγχου.

  Έλεγχοι ολισθητών με συνδεδεμένα πλαίσια με βέλη

  Τρία στοιχεία ελέγχου ολισθητή χρησιμοποιούνται για αλλαγή τιμών RGB, καθεμιά με ένα πλαίσιο αυξομείωσης δίπλα τους για διευκόλυνση άμεσης αριθμητικής καταχώρισης

## Κουμπιά

Ένα κουμπί αρχικοποιεί μία ενέργεια όταν ο χρήστης πατά πάνω του.

Τυπικά κουμπιά σε έναν αναγκαστικό διάλογο

Κουμπιά Εντάξει και Ακύρωση όπως βρίσκονται σε ένα αναγκαστικό διάλογο

Κατευθυντήριες γραμμές

- Ονομάστε όλα τα κουμπιά με προστακτικά ρήματα, χρησιμοποιώντας κεφαλαία κεφαλίδα. Για παράδειγμα, αποθήκευση, ταξινόμηση ή ενημέρωση τώρα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη την άμεση ενεργοποίηση του κουμπιού από το πληκτρολόγιο.

- Μετά το πάτημα ενός κουμπιού, ο χρήστης πρέπει να περιμένει να δει το αποτέλεσμα της ενέργειάς του σε 1 δευτερόλεπτο. Για παράδειγμα, κλείνοντας το παράθυρο ή ανοίγοντας ένα άλλο. Δείτε το για οδηγίες για τις ενέργειας που απαιτούνται αν η εφαρμογή σας δεν αποκρίνεται σε αυτό γρήγορα.

- Χρησιμοποιήστε αποσιωπητικά (...) στο τέλος της ετικέτας αν η ενέργεια απαιτεί παραπέρα εισαγωγή από το χρήστη πριν πραγματοποιηθεί. Για παράδειγμα, Αποθήκευση ως... ή Εύρεση.... Μην χρησιμοποιείτε αποσιωπητικά σε εντολές όπως οι Ιδιότητες, Προτιμήσεις, ή Ρυθμίσεις, επειδή αυτά τα ανοικτά παράθυρα δεν απαιτούν παραπέρα εισαγωγή.

- Όταν εμφανίζεται ένας διάλογος, μην αλλάζετε το προεπιλεγμένο κουμπί του σε κάποιο άλλο. Μπορείτε να προσθέτετε ή να αφαιρείτε την προεπιλεγμένη κατάσταση από το ίδιο κουμπί, αν αυτό βοηθά στην αποφυγή σφαλμάτων χρήστη, όμως. Αλλάζοντας την προεπιλογή από ένα κουμπί σε ένα άλλο μπορεί να προκληθεί σύγχυση ή αναποτελεσματικότητα, ειδικά για χρήστες που εξαρτώνται από βοηθητικές τεχνολογίες.

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

- Μην χρησιμοποιείτε περισσότερα από ένα ή δύο πλάτη κουμπιού στο ίδιο παράθυρο και κάντε τα να έχουν το ίδιο ύψος. Αυτό θα σας βοηθήσει να έχετε μία ευχάριστη και ομοιόμορφη οπτική εμφάνιση στο παράθυρό σας ώστε να είναι πιο εύκολη η χρήση του.

- Μην αναθέτετε ενέργειες σε διπλό πάτημα ή δεξί πάτημα σε ένα κουμπί. Οι χρήστες πιθανά να μην μπορούν να ανακαλύψουν αυτές τις ενέργειες και αν το κάνουν, θα παραποιηθούν οι προσδοκίες τους για τα άλλα κουμπιά στην επιφάνεια εργασίας.

- Κάντε τα άκυρα κουμπιά ανενεργά, αντί να εμφανίζεται ένα μήνυμα σφάλματος όταν ο χρήστης τα πατά.

Σε ένα διάλογο, ένα κουμπί μπορεί να γίνει το προεπιλεγμένο κουμπί, που εμφανίζεται με διαφορετικό περίγραμμα και ενεργοποιείται πατώντας επιστροφή. Συχνά αυτό θα είναι το εντάξει ή ισοδύναμο κουμπί. Όμως, εάν πατώντας αυτό το κουμπί κατά λάθος μπορεί να προκαλέσει απώλεια δεδομένων, μην ορίσετε ένα προεπιλεγμένο κουμπί για το παράθυρο. Μην κάνετε την ακύρωση το προεπιλεγμένο κουμπί. Δείτε για περισσότερες πληροφορίες.

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

## Πεδία επιλογών

Τα πεδία επιλογών χρησιμοποιούνται για την προβολή ή την αλλαγής κάποιας ρύθμισης. Οι δύο καταστάσεις τους, επιλογή και μη επιλογή, εμφανίζονται από την παρουσία ήτην απουσία του τικ στο επισημασμένο πεδίο.

Μία τυπική ομάδα πεδίων ελέγχου

Μια τυπική ομάδα πέντε πλαισίων ελέγχου σε ένα διάλογο

Κατευθυντήριες γραμμές

- Μην αρχικοποιείτε μια ενέργεια όταν ο χρήστης πατά ένα πλαίσιο ελέγχου. Όμως, εάν χρησιμοποιηθεί σε μια στιγμιαία εφαρμογή ιδιότητας ή παραθύρου προτίμησης, ενημερώστε την εμφανιζόμενη ρύθμιση από το πλαίσιο ελέγχου αμέσως.

- Πάτημα ενός πλαισίου ελέγχου δεν πρέπει να επηρεάζει τις τιμές οποιωνδήποτε άλλων ελέγχων. Μπορεί να ενεργοποιήσει, να απενεργοποιήσει, να κρύψει ή να εμφανίσει άλλους ελέγχους, όμως.

- Εάν η εναλλαγή ενός πλαισίου ελέγχου επηρεάζει την ευαισθησία άλλων ελέγχων, τοποθετήστε το πλαίσιο ελέγχου αμέσως από πάνω ή στα αριστερά των ελέγχων που επηρεάζει. Αυτό βοηθά να δείξετε ότι οι έλεγχοι εξαρτώνται από την κατάσταση του πλαισίου ελέγχου.

- Χρησιμοποιήστε κεφαλαίο το πρώτο γράμμα για ετικέτες πλαισίου ελέγχου, για παράδειγμα Χρήση προσαρμοσμένης γραμματοσειράς.

- Ονομάστε τα πλαίσια ελέγχου να δείχνουν σαφώς τα αποτελέσματα αμφότερων των καταστάσεων σημειωμένου και ασημείωτου, για παράδειγμα, προβολή εικονιδίων σε μενού. Όπου αυτό είναι δύσκολο, σκεφτείτε τη χρήση δύο ραδιοπλήκτρων έτσι αμφότερες οι καταστάσεις να μπορούν να πάρουν ετικέτες. Για παράδειγμα:

  Ασαφές πλαίσιο ελέγχου (κορυφή), τα ραδιοπλήκτρα δουλεύουν καλύτερα σε αυτήν την περίπτωση (πάτος)

  Δύο εικόνες: η μία δείχνει ένα μονό πλαίσιο ελέγχου με ασαφή ετικέτα "Η γραμμή προόδου στα αριστερά της γραμμής κατάστασης", η άλλη κάνει την επιλογή σαφή με ραδιοπλήκτρα με ετικέτες "αριστερά" και "δεξιά" κάτω από την κεφαλίδα " Η θέση του δείκτη της προόδου της γραμμής κατάστασης:"

  Το μονό πλαίσιο ελέγχου σε αυτό το παράδειγμα είναι ασαφές, καθώς δεν είναι καθαρό πού ο "δείκτης προόδου" θα πάει εάν το πλαίσιο είναι ασημείωτο. Δύο ραδιοπλήκτρα είναι καλύτερα σε αυτήν την περίπτωση, καθώς κάνουν τις επιλογές σαφείς.

- Δώστε ένα πλήκτρο πρόσβασης σε όλες τις ετικέτες πλαισίου ελέγχου που επιτρέπει στον χρήστη να ενεργοποιήσει/απενεργοποιήσει το πλαίσιο ελέγχου αμέσως από το πληκτρολόγιο.

- Εάν το πλαίσιο ελέγχου αναπαριστά μια ρύθμιση σε μια πολλαπλή επιλογή δηλαδή ρύθμιση για μερικά αντικείμενα στην επιλογή και απορρύθμιση για άλλα, εμφανίστε το πλαίσιο ελέγχου στην μεικτή του κατάσταση. Για παράδειγμα:

  Τα πλαίσια ελέγχου (δεξιά) εμφανίζουν ιδιότητες για μια πολλαπλή επιλογή αρχείων στον Ναυτίλο (αριστερά)

  Τα πλαίσια ελέγχου εμφανίζουν τις κρυφές, αναγνώσιμες και εγγράψιμες καταστάσεις των δύο επιλεγμένων αρχείων στον Ναυτίλο. Αμφότερα τα αρχεία είναι κρυφά, κανένα δεν είναι εγγράψιμο, αλλά ένα είναι αναγνώσιμο. Το αναγνώσιμο πλαίσιο ελέγχου εμφανίζεται συνεπώς στην μικτή του κατάσταση.

  In this example, both selected files are hidden (since their filenames start with "."), and the emblems on their icons show that neither file is writeable, but one is readable. The Readable check box is therefore shown in its mixed state. At time of writing, the exact visual appearance of a mixed state check box in gtk was undecided.

  Όταν ένα πεδίο ελέγχου βρίσκεται στη μικτή κατάστασή του:

  - πατώντας το πλαίσιο μια φορά θα πρέπει να σημειώσει το πλαίσιο, εφαρμόζοντας αυτήν τη ρύθμιση (όταν επιβεβαιωθεί) σε όλα τα επιλεγμένα αντικείμενα

  - πατώντας το πλαίσιο μια δεύτερη φορά θα πρέπει να ξεσημειώσει το πλαίσιο, αφαιρώντας αυτήν τη ρύθμιση (όταν επιβεβαιωθεί) σε όλα τα επιλεγμένα αντικείμενα

  - πατώντας το πλαίσιο μια τρίτη φορά θα πρέπει να επιστρέψει το πλαίσιο στη μικτή του κατάσταση, επαναφέροντας την αρχική τιμή κάθε επιλεγμένου αντικειμένου για αυτήν τη ρύθμιση (όταν επιβεβαιωθεί)

- Ονομάστε μια ομάδα πλαισίων ελέγχου με μια περιγραφική κεφαλίδα πάνω από ή αριστερά της ομάδας.

- Χρησιμοποιήστε ένα πλαίσιο γύρω από την ομάδα εάν είναι απαραίτητο, αλλά να θυμάστε ότι κενός χώρος δουλεύει συχνά το ίδιο καλά και καταλήγει σε ένα λιγότερο οπτικά άτακτο διάλογο.

- Μην τοποθετήστε περισσότερα από περίπου οκτώ πλαίσια ελέγχου κάτω από την ίδια κεφαλίδα ομάδας. Εάν χρειάζεστε περισσότερα από οκτώ, δοκιμάστε να χρησιμοποιήσετε κενό χώρο, ετικέτες κεφαλίδας ή πλαίσια για τη διαίρεση τους σε μικρότερες ομάδες. Αλλιώς, σκεφτείτε τη χρήση μιας λίστας πλαισίου ελέγχου - αλλά προφανώς θα χρειαστείτε επίσης να σκεφτείτε για την απλοποίηση της διεπαφής χρήστη.

- Δοκιμάστε να στοιχίσετε ομάδες πλαισίων ελέγχου κάθετα αντί για οριζόντια, καθώς αυτό τα κάνει ευκολότερα στην οπτική σάρωση. Χρησιμοποιήστε οριζόντιες ή ορθογώνιες στοιχίσεις μόνο εάν βελτιώνουν πολύ τη διάταξη του παραθύρου.

## Ραδιοπλήκτρα

Τα ραδιοπλήκτρα χρησιμοποιούνται σε ομάδες για επιλογή από ένα αμοιβαία αποκλειόμενο σύνολο επιλογών. Μόνο ένα ραδιοπλήκτρο μπορεί να οριστεί μέσα σε μια ομάδα οποτεδήποτε. Όπως με τα πλαίσια ελέγχου, μην χρησιμοποιείτε ραδιοπλήκτρα για αρχικοποίηση ενεργειών.

Μία τυπική ομάδα ραδιοπλήκτρων

Μια τυπική ομάδα τριών ραδιοπλήκτρων σε ένα διάλογο

Κατευθυντήριες γραμμές

- Χρησιμοποιήστε μόνο ραδιοπλήκτρα σε ομάδες τουλάχιστον των δύο, μην χρησιμοποιείτε ποτέ ένα μονό ραδιοπλήκτρο. Για αναπαράσταση μιας μοναδικής ρύθμισης, χρησιμοποιήστε ένα πλαίσιο ελέγχου ή δύο ραδιοπλήκτρα, ένα για κάθε κατάσταση.

- Ένα ακριβώς ραδιοπλήκτρο θα πρέπει να ορίζεται στην ομάδα πάντα. Η μόνη εξαίρεση είναι όταν η ομάδα εμφανίζει τις ιδιότητες μιας πολλαπλής επιλογής, όταν ένα ή περισσότερα από τα κουμπιά μπορούν να είναι στη μικτή τους κατάσταση.

- Μην αρχικοποιείτε μια ενέργεια όταν ο χρήστης πατά ένα ραδιοπλήκτρο. Όμως, εάν χρησιμοποιηθεί σε μια στιγμιαία εφαρμογή ιδιότητας ή παραθύρου προτίμησης, ενημερώστε την εμφανιζόμενη ρύθμιση από το ραδιοπλήκτρο αμέσως.

- Πάτημα ενός ραδιοπλήκτρου δεν πρέπει να επηρεάζει τις τιμές οποιωνδήποτε άλλων ελέγχων. Μπορεί να ενεργοποιήσει, να απενεργοποιήσει, να κρύψει ή να εμφανίσει άλλους ελέγχους, όμως.

- Εάν η εναλλαγή ενός ραδιοπλήκτρου επηρεάζει την ευαισθησία άλλων ελέγχων, τοποθετήστε το ραδιοπλήκτρο αμέσως στα αριστερά των ελέγχων που επηρεάζει. Αυτό βοηθά να δείξετε ότι οι έλεγχοι εξαρτώνται από την κατάσταση του πλαισίου ελέγχου.

- Χρησιμοποιήστε κεφαλαίο το πρώτο γράμμα για ετικέτες ραδιοπλήκτρου, για παράδειγμα αλλαγμένη κίνηση. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να ορίσει το ραδιοπλήκτρο άμεσα από το πληκτρολόγιο.

- Εάν το ραδιοπλήκτρο αναπαριστά μια ρύθμιση σε μια πολλαπλή επιλογή δηλαδή ρύθμιση για μερικά αντικείμενα στην επιλογή και απορρύθμιση για άλλα, εμφανίστε το ραδιοπλήκτρο στην μεικτή του κατάσταση. Για παράδειγμα:

  Τα ραδιοπλήκτρα (δεξιά) εμφανίζουν ιδιότητες για μια πολλαπλή επιλογή σχημάτων σε μια εφαρμογή σχεδίασης (αριστερά)

  Τα ραδιοπλήκτρα εμφανίζουν το πάχος, την λεπτότητα και τεχνοτροπίες σχεδίασης με παύλες των δύο επιλεγμένων σχημάτων σε μια εφαρμογή σχεδίασης. Ένα σχήμα σχεδιάζεται στην παχιά τεχνοτροπία, το άλλο στην τεχνοτροπία με παύλες. Τα παχιά και με παύλες ραδιοπλήκτρα εμφανίζονται συνεπώς στη μικτή τους κατάσταση και το λεπτό ραδιοπλήκτρο αναιρείται.

  At time of writing, the exact visual appearance of a mixed state radio button in gtk was undecided. In this situation, clicking any radio button in the group should set the clicked button, and unset all the others. Thereafter, the group should behave like a normal radio button group— there is no way to reset a radio button to its mixed state by clicking on it. Provide a Reset button or equivalent in the window that allows the previous mixed settings to be restored without closing the window or cancelling the dialog.

- Ονομάστε μια ομάδα ραδιοπλήκτρων με μια περιγραφική κεφαλίδα πάνω από ή αριστερά της ομάδας.

- Χρησιμοποιήστε ένα πλαίσιο γύρω από την ομάδα εάν είναι απαραίτητο, αλλά να θυμάστε ότι κενός χώρος δουλεύει συχνά το ίδιο καλά και καταλήγει σε ένα λιγότερο οπτικά άτακτο διάλογο.

- Μην τοποθετείτε περισσότερα από περίπου οκτώ ραδιοπλήκτρα στην ίδια κεφαλίδα ομάδας. Εάν χρειάζεστε περισσότερα από οκτώ, σκεφτείτε τη χρήση μιας μονής επιλογής λίστας - αλλά προφανώς χρειάζεται επίσης να σκεφτείτε την απλοποίηση της διεπαφής χρήστη.

- Δοκιμάστε να στοιχίσετε ομάδες ραδιοπλήκτρων κάθετα αντί για οριζόντια, καθώς αυτό τα διευκολύνει στην οπτική σάρωση. Χρησιμοποιήστε οριζόντιες ή ορθογώνιες στοιχίσεις μόνο εάν βελτιώνουν πολύ τη διάταξη του παραθύρου.

## Κουμπιά εναλλαγής

Τα κουμπιά εναλλαγής μοιάζουν με τα κανονικά κουμπιά, αλλά χρησιμοποιούνται για να εμφανίσουν ή να αλλάξουν μια κατάσταση αντί να αρχικοποιήσουν μια ενέργεια. Ένα κουμπί εναλλαγής δύο καταστάσεων, ορισμός και αναίρεση, εμφανίζονται από την εμφάνισή του "πατημένο" ή "ανυψωμένο" αντίστοιχα.

Μία τυπική ομάδα κουμπιών εναλλαγής

Μια ομάδα τεσσάρων πλήκτρων εναλλαγής που αναπαριστά μια επιλογή μονάδων μέτρησης: ίντσες, εκατοστά, πόδια και μέτρα

Κατευθυντήριες γραμμές

- Μην χρησιμοποιείτε ομάδες κουμπιών εναλλαγής σε διαλόγους εκτός και περιορισμοί χώρου σας αναγκάζουν, ή χρειάζεστε να δώσετε συνέπεια με μια εργαλειοθήκη στην εφαρμογή σας. πλαίσια ελέγχου ή ραδιοπλήκτρα είναι συνήθως προτιμητέα, καθώς επιτρέπουν περισσότερο περιγραφικές ετικέτες και λιγότερο μπερδεμένες μα άλλους τύπους ελέγχου.

- Χρησιμοποιήστε κουμπιά εναλλαγής μόνο σε ομάδες, έτσι δεν παίρνονται ως κανονικά κουμπιά. Κάντε την ομάδα να συμπεριφερθεί όπως είτε μια ομάδα πλαισίων ελέγχου είτε μια ομάδα ραδιοπλήκτρων, όπως απαιτείται.

- Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα όλων των κουμπιών εναλλαγής που επιτρέπουν στον χρήστη να ενεργοποιήσει/απενεργοποιήσει το κουμπί αμέσως από το πληκτρολόγιο.

- Ονομάστε μια ομάδα κουμπιών εναλλαγής με μια περιγραφική κεφαλίδα από πάνω ή αριστερά της ομάδας, όπως θα κάνατε με μια ομάδα πλαισίων ελέγχου ή ραδιοπλήκτρων.

- Χρησιμοποιήστε ένα πλαίσιο γύρω από την ομάδα των κουμπιών εάν είναι απαραίτητο, αλλά να θυμάστε ότι κενός χώρος δουλεύει συχνά το ίδιο καλά και καταλήγει σε ένα λιγότερο οπτικά άτακτο διάλογο.

- Δοκιμάστε να στοιχίσετε τις ομάδες των κουμπιών εναλλαγής οριζόντια αντί για κάθετα. Αυτό είναι πώς κανονικά εμφανίζονται τα κουμπιά εναλλαγής σε μια εργαλειοθήκη, έτσι ώστε ο χρήστης να εξοικειώνεται περισσότερο με αυτήν την διάταξη.

- Μην αφήνετε χώρο μεταξύ κουμπιών εναλλαγής σε μια ομάδα, αλλιώς μπορεί να φαίνονται άσχετα ή μπορεί να εκληφθούν ως κανονικά κουμπιά.

- Χρησιμοποιήστε κεφαλαίο το πρώτο γράμμα της κεφαλίδας για ετικέτες κουμπιού εναλλαγής, για παράδειγμα Χωρίς ταπετσαρία, Ανάγλυφος λογότυπος.

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

- Χρησιμοποιήστε το ίδιο κείμενο ή γραφική ετικέτα για ένα κουμπί εναλλαγής εάν ενεργοποιηθεί/απενεργοποιηθεί.

- Εάν το κουμπί εναλλαγής αναπαριστά μια ρύθμιση σε μια πολλαπλή επιλογή δηλαδή ορισμό για μερικά αντικείμενα στην επιλογή και αναίρεση για άλλα, εμφανίστε το κουμπί στην μεικτή του κατάσταση. Για παράδειγμα:

  Τα κουμπιά εναλλαγής (δεξιά) εμφανίζουν ιδιότητες για μια πολλαπλή επιλογή σχημάτων σε μια εφαρμογή σχεδίασης (αριστερά)

  Τα κουμπιά εναλλαγής εμφανίζουν το πάχος, την λεπτότητα και τεχνοτροπίες σχεδίασης με παύλες των δύο επιλεγμένων σχημάτων σε μια εφαρμογή σχεδίασης. Ένα σχήμα σχεδιάζεται στην παχιά τεχνοτροπία, το άλλο στην τεχνοτροπία με παύλες. Τα παχιά και με παύλες κουμπιά εναλλαγής εμφανίζονται συνεπώς στη μικτή τους κατάσταση και το λεπτό κουμπί εναλλαγής αναιρείται.

## Πτυσσόμενες λίστες

Οι πτυσσόμενες λίστες χρησιμοποιούνται για επιλογή από ένα αμοιβαία αποκλειόμενο σύνολο επιλογών. Μπορεί να είναι χρήσιμες όταν υπάρχει ανεπαρκής χώρος σε ένα παράθυρο για να χρησιμοποιηθεί μια ομάδα ραδιοπλήκτρων ή μια λίστα μονής επιλογής, με την οποία είναι λειτουργικά ισοδύναμο.

Μια πτυσσόμενη λίστα εμφανίζει την τρέχουσα επιλογή (αριστερά) και τη λίστα των διαθέσιμων επιλογών όταν πατιέται (δεξιά)

Δύο εικόνες, μία μιας πτυσσόμενης λίστας εμφανίζει τις τρέχουσες ρυθμίσεις της και η άλλη εμφανίζει το αναδυόμενο μενού της των διαθέσιμων επιλογών όταν πατιέται

Συστάσεις:

- Μην χρησιμοποιείτε πτυσσόμενες λίστες με λιγότερα από τρία στοιχεία, ή περισσότερα από περίπου δέκα. Για να δώσετε μια δυνατότητα δύο επιλογών, χρησιμοποιήστε ραδιοπλήκτρα ή κουμπιά εναλλαγής. Για να δώσετε μια δυνατότητα περισσότερων από δέκα επιλογών, χρησιμοποιήστε μια λίστα.

- Μην αρχικοποιείτε μια ενέργεια όταν ο χρήστης επιλέγει ένα στοιχείο από μια πτυσσόμενη λίστα. Όμως, εάν χρησιμοποιηθεί σε μια στιγμιαία εφαρμογή ιδιότητας ή παραθύρου προτίμησης, ενημερώστε την ρύθμιση που το μενού αντιπροσωπεύει αμέσως.

- Η επιλογή ενός στοιχείου από μια πτυσσόμενη λίστα δεν πρέπει να επηρεάζει τις τιμές οποιωνδήποτε άλλων ελέγχων. Μπορεί να ενεργοποιήσει, να απενεργοποιήσει, να κρύψει ή να εμφανίσει άλλους ελέγχους, όμως.

- Ονομάστε την πτυσσόμενη λίστα με μια ετικέτα κειμένου από πάνω της ή στα αριστερά της, χρησιμοποιώντας κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στην πτυσσόμενη λίστα.

- Χρησιμοποιήστε κεφαλαίο το πρώτο γράμμα για στοιχεία πτυσσόμενης λίστας, για παράδειγμα αλλαγμένης κίνησης

- Δώστε ένα πλήκτρο πρόσβασης σε κάθε στοιχείο πτυσσόμενης λίστας. Βεβαιωθείτε ότι κάθε πλήκτρο πρόσβασης είναι μοναδικό μες το περιβάλλον παράθυρο ή διάλογο, όχι απλά μες το μενού.

- Μην δίνετε πλήκτρα συντόμευσης σε στοιχεία πτυσσόμενης λίστας από προεπιλογή. Ο χρήστης μπορεί να δώσει τα δικά του πλήκτρα συντόμευσης με τον συνήθη τρόπο εάν επιθυμεί, όμως.

- Μην χρησιμοποιείτε μια πτυσσόμενη λίστα σε μια κατάσταση όπου μπορεί να πρέπει να εμφανίσετε μια ιδιότητα ή μια πολλαπλή επιλογή, καθώς οι πτυσσόμενες λίστες δεν γνωρίζουν τη μικτή κατάσταση. Χρησιμοποιήστε μια ομάδα ραδιοπλήκτρων ή πλήκτρων εναλλαγής στη θέση της, καθώς αυτά μπορούν να εμφανίσουν καταστάσεις ορισμού, αναίρεσης ή μικτές.

- Μην χρησιμοποιείτε υπομενού σε μία πτυσσόμενη λίστα.

Κανονικά θα πρέπει να χρησιμοποιήσετε ραδιοπλήκτρα ή μια λίστα αντί για πτυσσόμενες λίστες, καθώς αυτοί οι έλεγχοι παρουσιάζουν όλες τις διαθέσιμες επιλογές μονομιάς χωρίς παραπέρα αλληλεπίδραση. Όμως, οι πτυσσόμενες λίστες μπορεί να προτιμούνται σε ένα παράθυρο όπου:

- υπάρχει λίγος διαθέσιμος χώρος

- η λίστα επιλογών μπορεί να αλλάξει με τον χρόνο

- τα περιεχόμενα του κρυφού μέρους του μενού είναι φανερά από την ετικέτα του και το ένα επιλεγμένο στοιχείο. Για παράδειγμα, εάν έχετε ένα μενού επιλογής με ετικέτα "μήνας:" με το στοιχείο "Ιανουάριος" επιλεγμένο, ο χρήστης μπορεί να συμπεράνει λογικά ότι το μενού περιέχει τους 12 μήνες του έτους χωρίς να πρέπει να κοιτάξει.

Οι πτυσσόμενες λίστες μπορεί επίσης να είναι χρήσιμες σε εργαλειοθήκες, για αντικατάσταση μιας ομάδας αρκετών αμοιβαία αποκλειόμενων κουμπιών εναλλαγής.

## Πτυσσόμενα σύνθετα πλαίσια

Τα πτυσσόμενα σύνθετα πλαίσια συσχετίζουν ένα πεδίο εισαγωγής κειμένου και μια πτυσσόμενη λίστα προκαθορισμένων τιμών. Η επιλογή προκαθορισμένων τιμών ορίζει το πεδίο εισόδου σε αυτήν την τιμή.

Ένα πτυσσόμενο σύνθετο πλαίσιο πριν και μετά την πτυσσόμενη λίστα του εμφανίζεται

Δύο εικόνες, μία ενός πτυσσόμενου σύνθετου πλαισίου πεδίου καταχώρισης που εμφανίζει την τρέχουσα επιλογή και η άλλη εμφανίζει την πτυσσόμενη λίστα της των διαθέσιμων επιλογών όταν πατηθεί

Κατευθυντήριες γραμμές

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

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

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

- Ερμηνεύετε την καταχώριση χρήστη σε ένα πτυσσόμενο σύνθετο πλαίσιο με τρόπο ανεξάρτητο από πεζά/κεφαλαία. Για παράδειγμα, εάν ο χρήστης πληκτρολογήσει `γαλάζιο`, `Γαλάζιο` και `ΓΑΛΑΖΙΟ` στο ίδιο πτυσσόμενο σύνθετο πλαίσιο σε διαφορετικές περιπτώσεις, αποθηκεύστε μόνο μία από αυτές στην πτυσσόμενη λίστα του σύνθετου πλαισίου, εκτός και η εφαρμογή σας ξεχωρίζει μεταξύ των διαφορετικών μορφών (που συνήθως είναι κακή ιδέα).

- Ονομάστε το πτυσσόμενο σύνθετο πλαίσιο με μια ετικέτα κειμένου από πάνω του ή στα αριστερά του, χρησιμοποιώντας κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στο πτυσσόμενο σύνθετο πλαίσιο.

- Χρησιμοποιήστε κεφαλαίο το πρώτο γράμμα για στοιχεία πτυσσόμενης λίστας, για παράδειγμα αλλαγμένης κίνησης.

## Γραμμές κύλισης

Συχνά ένα αντικείμενο (όπως ένα έγγραφο ή μια λίστα) δεν προσαρμόζονται μέσα στους περιορισμούς του ελέγχου προβολής. Σε αυτές τις περιπτώσεις μια γραμμή κύλισης μπορεί να προσαρτηθεί στον έλεγχο προβολής. Η γραμμή κύλισης αλλάζει το μέρος του αντικειμένου που είναι προς το παρόν ορατό μέσα στον έλεγχο προβολής: ολισθαίνει την προβολή κατά μήκος του αντικειμένου σε έναν άξονα (οριζόντιο ή κάθετο).

Κατευθυντήριες γραμμές

- Εμφανίστε γραμμές κύλισης μόνο όταν απαιτούνται για ολίσθηση της προβολής. Εάν ένα αντικείμενο ταιριάζει μες τον έλεγχο προβολής, μην σχεδιάζετε γραμμές κύλισης. Εάν χρησιμοποιείτε ένα GtkScrolledWindow, καλέστε τη ρύθμιση `gtk_scrolled_window_set_policy` του κατάλληλου άξονα (ή αξόνων) σε GTK_POLICY_AUTOMATIC.

- Μην χρησιμοποιείτε γραμμές κύλισης ως αντικατάσταση για έναν ολισθητή. Οι γραμμές κύλισης θα πρέπει να χρησιμοποιούνται μόνο για προσάρτηση σε μια προβολή που αλλάζουν ενεργά και όχι ως ένας γενικός συνεχής έλεγχος εισαγωγής.

- Προσαρτήστε τις γραμμές κύλισης στα δεξιά του ελέγχου προβολής (για κάθετη ολίσθηση της προβολής), ή στο τέλος (για οριζόντια προβολή). Μην προσαρτάτε γραμμές κύλισης στην κορυφή ή στα αριστερά του ελέγχου προβολέα.

- Οι γραμμές κύλισης πρέπει να στοιχίζονται σε αμφότερες τις κατευθύνσεις με την προσαρτώμενη προβολή στον άξονα που ελέγχουν. Με άλλα λόγια, οι οριζόντιες γραμμές κύλισης πρέπει να καλύπτουν το πλήρες μήκος του ελέγχου προβολέα και οι κάθετες γραμμές κύλισης πρέπει να καλύπτουν το πλήρες ύψος του ελέγχου προβολέα.

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

- Οι γραμμές κύλισης πρέπει να επηρεάζουν την προβολή στην οποία προσαρτώνται σε πραγματικό χρόνο: καθώς ο χρήστης σύρει ή πατά η προβολή πρέπει να αλλάζει. Το μεσοδιάστημα θα είναι ενοχλητικό και επιδρά αρνητικά στην ικανότητα των χρηστών να περιηγούνται το περιεχόμενο μες την προβολή.

## Λίστες

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

Μία απλή λίστα δύο στηλών

Εικόνα του στοιχείου ελέγχου που περιέχει δύο αταξινόμητες στήλες κειμένου

Κατευθυντήριες γραμμές

- Δώστε πάντα μια ετικέτα στους ελέγχους λίστας, τοποθετημένες πάνω από ή αριστερά της λίστας με κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στη λίστα.

- Κάντε τον έλεγχο λίστας αρκετά μεγάλο που να μπορεί να εμφανίσει τουλάχιστον τέσσερα στοιχεία τη φορά χωρίς κύλιση. Για λίστες δέκα ή περισσότερων στοιχείων, αυξήστε αυτό το ελάχιστο μέγεθος κατάλληλα.

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

- Μην χρησιμοποιείτε λίστες με λιγότερα από περίπου πέντε στοιχεία, εκτός και ο αριθμός των στοιχείων μπορεί να αυξηθεί με τον χρόνο. Χρησιμοποιήστε πλαίσια ελέγχου, ραδιοπλήκτρα ή μια πτυσσόμενη λίστα εάν υπάρχουν λιγότερα στοιχεία.

- Χρήση μόνο επικεφαλίδων στηλών όταν:

  - η λίστα έχει περισσότερες από μία στήλες, ή

  - η λίστα έχει μόνο μία στήλη, αλλά ο χρήστης μπορεί να θέλει την αναδιάταξη της λίστας. (Αυτό σπάνια είναι χρήσιμο με απλές λίστες στηλών).

  Στις περισσότερες άλλες καταστάσεις, οι κεφαλίδες στήλης καταλαμβάνουν περιττό χώρο και η πρόσθετη ετικέτα προσθέτει οπτική αταξία.

- Ονομάστε πάντα τις κεφαλίδες στήλης όταν χρησιμοποιούνται. Εάν η στήλη είναι υπερβολικά στενή για μια λογική ετικέτα, δώστε μια συμβουλή οθόνης για τη στήλη. Πέρα από την προφανή της χρήση, αυτό θα βοηθήσει να επιβεβαιώσετε ότι οι βοηθητικές τεχνολογίες μπορούν να περιγράψουν τη χρήση της στήλης σε οπτικά εξασθενημένους χρήστες.

- Σκεφτείτε τη χρήση μιας λίστας πλαισίων ελέγχων για λίστες πολλαπλών επιλογών, καθώς αυτές το κάνουν πιο φανερό από ότι η πολλαπλή επιλογή μπορεί:

  Μία απλή λίστα πλαισίων ελέγχου

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

  Για να το κάνετε αυτό, πρέπει κανονικά να ορίσετε ο ίδιος έλεγχος λίστας να είναι μονής επιλογής, αλλά αυτό εξαρτάται από την συγκεκριμένη εργασία για την οποία θα χρησιμοποιηθεί.

- Για λίστες πολλαπλών επιλογών, εμφανίστε τον επιλεγμένο αριθμό των στοιχείων προς το παρόν σε μια στατική ετικέτα κειμένου κάτω από τη λίστα, για παράδειγμα, Επιλεγμένα ονόματα: 3. Μια τέτοια ετικέτα κάνει πιο φανερό ότι η πολλαπλή επιλογή είναι δυνατή.

- Σκεφτείτε να δώσετε κουμπιά Επιλογή όλων και Αποεπιλογή όλων δίπλα στις λίστες πολλαπλής επιλογής, εάν είναι δυνατό.

### Ταξινομήσιμες λίστες

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

Κατευθυντήριες γραμμές

- Δείξτε ποια στήλη είναι προς το παρόν ταξινομημένη εμφανίζοντας ένα ανοδικό ή καθοδικό βέλος στην κεφαλίδα της:

  Σειρά ταξινόμησης | Διεύθυνση βέλους | Παράδειγμα
  --- | --- | ---
  Φυσικό | Κάτω | Αλφαβητικά· πρώτα ο μικρότερος αριθμός· πρώτα η πιο πρόσφατη ημερομηνία· πρώτα τα σημειωμένα στοιχεία
  Αντιστροφή | Πάνω | Αντίστροφα αλφαβητικά· πρώτα ο μεγαλύτερος αριθμός· πρώτα η πιο πρόσφατη ημερομηνία· πρώτα τα ασημείωτα στοιχεία

- Πατώντας μια αταξινόμητη κεφαλίδα στήλης ταξινομεί τη στήλη με φυσική σειρά, που δείχνεται με την εμφάνιση ενός καθοδικού βέλους στην κεφαλίδα της.

- Πατώντας μια ταξινομημένη κεφαλίδα στήλης με φυσική σειρά την αναταξινομεί με αντίστροφη σειρά, που δείχνεται με ένα ανοδικό βέλος στην κεφαλίδα της.

  Αποταξινόμηση λιστών

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

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

## Δένδρα

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

Χρήση των δένδρων με προσοχή!

Λόγω της συνθετότητας τους συγκρινόμενα με τους άλλους ελέγχους, αρχάριοι και κάποιοι ενδιάμεσοι χρήστες έχουν συχνά προβλήματα χρήσης και κατανόησης των ελέγχων δένδρου. Εάν η εφαρμογή σας σχεδιάστηκε για αυτόν τον τύπο χρήστη, ίσως θελήσετε να σκεφτείτε εναλλακτικούς τρόπους παρουσίασης της πληροφορίας, όπως η λίστα Ναυτίλου ή η προβολή εικονιδίου, ή οι ιεραρχικές λίστες περιηγητή που βρίσκονται στον προβολέα αρχείου του GNUstep.

Ένας απλός έλεγχος δένδρου με ένα επίπεδο ιεραρχίας

Εικόνα του στοιχείου ελέγχου δένδρου που εμφανίζει τους μήνες του χρόνου ως κόμβους κορυφαίου επιπέδου και τις επίσημες αργίες σε αυτούς τους μήνες ως θυγατρικές τους

Κατευθυντήριες γραμμές

- Δώστε πάντα μια ετικέτα στους ελέγχους δένδρου, τοποθετημένες πάνω από ή αριστερά του δένδρου με κεφαλαίο το πρώτο γράμμα. Δώστε ένα πλήκτρο πρόσβασης στην ετικέτα που επιτρέπει στον χρήστη να εστιάσει άμεσα στο δένδρο.

- Χρήση επικεφαλίδων στηλών όταν:

  - το δένδρο έχει περισσότερες από μία στήλες

  - το δένδρο έχει μόνο μία στήλη, αλλά ο χρήστης ίσως επιθυμεί να αναταξινομήσει το δένδρο. Αυτό θα πρέπει σπάνια να συμβαίνει σε μονά δένδρα στηλών.

  Στις περισσότερες άλλες καταστάσεις, οι κεφαλίδες στήλης καταλαμβάνουν περιττό χώρο και η πρόσθετη ετικέτα προσθέτει οπτική αταξία.

- Ονομάστε πάντα τις κεφαλίδες στήλης όταν χρησιμοποιούνται. Εάν η στήλη είναι υπερβολικά στενή για μια λογική ετικέτα, δώστε μια συμβουλή οθόνης για τη στήλη. Πέρα από την προφανή της χρήση, αυτό θα βοηθήσει να επιβεβαιώσετε ότι οι βοηθητικές τεχνολογίες μπορούν να περιγράψουν τη χρήση της στήλης σε οπτικά εξασθενημένους χρήστες.

- Σκεφτείτε τη χρήση ενός δένδρου πλαισίων ελέγχων για δένδρα πολλαπλών επιλογών, καθώς αυτές το κάνουν πιο φανερό από όσο η πολλαπλή επιλογή μπορεί:

  Ένα απλό δένδρο πεδίου ελέγχου

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

  Για να το κάνετε αυτό, πρέπει κανονικά να ορίσετε ο ίδιος έλεγχος δένδρου να είναι μονής επιλογής, αλλά αυτό εξαρτάται από την συγκεκριμένη εργασία για την οποία θα χρησιμοποιηθεί.

- Για δένδρα πολλαπλών επιλογών, εμφανίστε τον επιλεγμένο αριθμό των στοιχείων προς το παρόν σε μια στατική ετικέτα κειμένου κάτω από το δένδρο, για παράδειγμα, Επιλεγμένα ονόματα: 3. Μια τέτοια ετικέτα κάνει πιο φανερό ότι η πολλαπλή επιλογή είναι δυνατή.

- Σκεφτείτε να δώσετε κουμπιά Επιλογή όλων και Αποεπιλογή όλων δίπλα στα δένδρα πολλαπλής επιλογής, εάν είναι δυνατό στην εργασία.

### Ταξινομήσιμα δένδρα

Όπως με τις λίστες, ο χρήστης μπορεί να βρει χρήσιμη την ταξινόμηση δένδρων μεγάλων ή πολλαπλών στηλών. Δείτε τον οδηγό στο για περισσότερες πληροφορίες.

## Σημειωματάρια με καρτέλες

Ένας έλεγχος σημειωματάριου με καρτέλες είναι ένας βολικός τρόπος παρουσίασης σχετικών πληροφοριών στο ίδιο παράθυρο, χωρίς να πρέπει να το εμφανίζετε όλο ταυτόχρονα. Είναι ανάλογο με τις καρτέλες διαίρεσης σε ένα ντοσιέ δακτυλίου ή ένα αρχειοθήκη.

Ένας τυπικός έλεγχος σημειωματαρίου με τρεις καρτέλες

Εικόνα στοιχείου ελέγχου σημειωματαρίου με τρεις καρτέλες

Κατευθυντήριες γραμμές

- Μην βάζετε υπερβολικές σελίδες στο ίδιο σημειωματάριο. Εάν δεν μπορείτε να δείτε όλες τις καρτέλες χωρίς κύλιση ή διαίρεση τους σε πολλαπλές γραμμές, χρησιμοποιείτε προφανώς υπερβολικές και θα πρέπει να χρησιμοποιήσετε έναν έλεγχο λίστας στη θέση τους. Δείτε το παρακάτω παράδειγμα.

- Ονομάστε τις ετικέτες με κεφαλαία κεφαλίδα και χρησιμοποιήστε ουσιαστικά αντί για ρήματα, για παράδειγμα γραμματοσειρά ή στοίχιση. Δοκιμάστε να κρατήσετε όλες τις ετικέτες σε ένα σημειωματάριο με το ίδιο γενικό μήκος.

- Μην αποδίδετε πλήκτρα πρόσβασης σε ετικέτες καρτελών, καθώς αυτό σημαίνει ότι δεν μπορείτε να χρησιμοποιήσετε αυτά τα πλήκτρα πρόσβασης για οποιοδήποτε άλλο έλεγχο σε οποιαδήποτε σελίδα του σημειωματαρίου χωρίς διένεξη. Ακόμα κι αν μπορείτε να αποδώσετε πλήκτρα πρόσβασης που δεν συγκρούονται, είναι καλύτερο να μην το κάνετε επειδή μπορεί να είναι αδύνατη η αποφυγή διένεξης όταν η εφαρμογή σας μεταφράζεται σε άλλες γλώσσες. Δώστε ένα πλήκτρο πρόσβασης σε κάθε άλλο έλεγχο σε κάθε σελίδα, όμως.

- Μην σχεδιάζετε ένα σημειωματάριο που αλλάζοντας ελέγχους σε μια σελίδα να επηρεάζει τους ελέγχους σε οποιαδήποτε άλλη σελίδα. Οι χρήστες είναι απίθανο να ανακαλύψουν τέτοιες εξαρτήσεις.

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

- Χρησιμοποιήστε καρτέλες που είναι ανάλογες με το πλάτος των ετικετών τους. Μην ορίζετε απλά όλες τις καρτέλες στο ίδιο πλάτος, καθώς αυτό κάνει πιο δύσκολη την οπτική σάρωση και περιορίζει τον αριθμό των καρτελών που μπορείτε να προσαρμόσετε σε ένα σημειωματάριο χωρίς κύλιση. Για παράδειγμα:

  Καρτέλες σταθερού -και ανάλογου- πλάτους (προτείνεται)

  Σύγκριση πλάι-πλάι ενός σημειωματάριου του οποίου οι καρτέλες είναι όλες του ίδιου πλάτους και μία από αυτές τις καρτέλες είναι αρκετά πλατιά μόνο για να χωρέσει τις ετικέτες καρτέλας. Η δεύτερη καταλαμβάνει περίπου 33% λιγότερο χώρο οθόνης.

- Αν και τα περιεχόμενα κάθε σελίδας σε ένα σημειωματάριο καταλαμβάνουν διαφορετικό ποσό χώρου, μην χρησιμοποιείτε μεγαλύτερο από το κανονικό διάκενο γύρω από τους ελέγχους στις "πιο άδειες" σελίδες και μην κεντράρετε τους ελέγχους στη σελίδα.

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

Εάν έχετε περισσότερες από περίπου έξι καρτέλες σε ένα σημειωματάριο, χρησιμοποιήστε έναν έλεγχο λίστας αντί για καρτέλες για εναλλαγή μεταξύ των σελίδων των ελέγχων. Για παράδειγμα:

Χρησιμοποιήστε έναν έλεγχο λίστας όπου θα μπορούσαν να υπάρξουν υπερβολικές καρτέλες για την άνετη προσαρμογή σε ένα σημειωματάριο

Μέρος ενός παραθύρου που περιλαμβάνει ένα στοιχείο ελέγχου λίστας με 7 στοιχεία, κάθε στοιχείο αναπαριστά μια κατηγορία ρυθμίσεων όπως "εμφάνιση" και "περιήγηση". Τα στοιχεία ελέγχου στο υπόλοιπο παράθυρο αλλάζουν ανάλογα με το ποιο στοιχείο επιλέγεται στη λίστα.

As in this example, place the list control on the left-hand side of the window, with the dynamic portion of the window immediately to its right. Should this be reversed for right-to-left locales?

### Ενδείξεις κατάστασης

Σε μερικά παράθυρα με καρτέλες, όπως στα παράθυρα προτίμησης, μπορεί να είναι επιθυμητό να δείξετε την κατάσταση της συγκεκριμένης καρτέλας. Αυτό μπορεί να χρησιμοποιηθεί ως ειδοποίηση στον χρήστη ότι μια ιστοσελίδα φορτώνεται ακόμα ή έχει φορτωθεί, ως ένα νέο μήνυμα που περιμένει σε μια συγκεκριμένη συζήτηση άμεσου μηνύματος, ή ότι ένα έγγραφο δεν έχει αποθηκευτεί. Ένας δείκτης μιας τέτοιας κατάστασης πρέπει να είναι ένα εικονίδιο που τοποθετείται αμέσως στα αριστερά της ετικέτας καρτέλας. Επιπρόσθετα, το χρώμα της ετικέτας της καρτέλας μπορεί να αλλαχθεί για να δείξει μια συγκεκριμένη κατάσταση. Μην βασίζεστε απλά σε διαφορετικά χρωματικά σχήματα για την ένδειξη της κατάστασης.

## Γραμμές προόδου

Οι γραμμές προόδου είναι οπτικές ενδείξεις της προόδου μιας εργασίας που εκτελείται από την εφαρμογή και παρέχει σημαντική ανάδραση. Για πληροφορίες χρήσης μιας γραμμής προόδου μέσα σε ένα παράθυρο προόδου, δείτε .

Μπορείτε να χρησιμοποιήσετε δύο κύριους τύπους γραμμών προόδου στις γραμμές μέτρησης προόδου εφαρμογής και αόριστες γραμμές προόδου (το είδος που αναπηδά πίσω και μπρος). Επιπλέον υπάρχουν τρεις τύποι μετρημένων γραμμών προόδου.

Κατευθυντήριες γραμμές

- Χρησιμοποιήστε πάντα μια γραμμή μέτρησης προόδου όταν το μήκος μιας εργασίας μπορεί να προβλεφθεί ακριβώς ή περίπου. Αλλιώς, χρησιμοποιήστε έναν αόριστο δείκτη προόδου ή ένα παράθυρο λίστας ελέγχων.

- Βεβαιωθείτε ότι μια γραμμή μέτρησης προόδου μετρά τον ολικό χρόνο ή ολική εργασία μιας λειτουργίας, όχι απλά αυτόν ενός μονού βήματος. Μια εξαίρεση είναι μια γραμμή προόδου που μετρά τον ολικό χρόνο ή ολική εργασία του τρέχοντος βήματος σε μια λίστα ελέγχων προόδου.

### Δείκτης προόδου υπολειπόμενου χρόνου

Μια κίνηση που αποτελείται από μια γραμμή που αλλάζει μήκος δείχνει πόσος χρόνος παραμένει σε μια λειτουργία και το κείμενο δηλώνει πόσος χρόνος παραμένει πριν την ολοκλήρωση της λειτουργίας. Οι γραμμές υπολειπόμενου χρόνου είναι ο πιο χρήσιμος τύπος γραμμής προόδου.

Μία απλή γραμμή προόδου για τον 'υπολειπόμενο χρόνο'

Ένας απλός διάλογος προόδου υπολειπόμενου χρόνου

Χρησιμοποιήστε τη γραμμή υπολειπόμενου χρόνου εάν η εφαρμογή σας θα εμφανίσει μια αρχική εκτίμηση του υπολειπόμενου χρόνου μιας λειτουργίας και έπειτα περιοδική εμφάνιση ενημερωμένων εκτιμήσεων. Κάθε ενημερωμένη εκτίμηση πρέπει να βασίζεται σε αλλαγές που συνέβησαν και θα προκαλέσει τον γρηγορότερο ή καθυστερημένο τερματισμό της λειτουργίας. Εάν η λειτουργία τελειώσει πιο αργά, η εφαρμογή σας μπορεί να εμφανίσει μια ενημερωμένη εκτίμηση ότι απαιτούμενος χρόνος θα είναι μεγαλύτερος από την προηγούμενη εκτίμηση.

### Δείκτης προόδου τυπικού χρόνου

Μια γραμμή της οποίας η αλλαγή μήκους δείχνει πόσος χρόνος παραμένει εάν μια λειτουργία παίρνει όσο συνήθως κάνει. Οι γραμμές τυπικού χρόνου είναι οι λιγότερο ακριβείς τύποι γραμμών μέτρησης προόδου, αλλά είναι πιο χρήσιμες από τις γραμμές αόριστης προόδου.

Μία απλή γραμμή προόδου 'τυπικού υπολειπόμενου χρόνου'

Ένας απλός διάλογος προόδου 'τυπικού υπολειπόμενου χρόνου'

Για μερικές λειτουργίες, δεν μπορείτε να εκτιμήσετε τον υπολειπόμενο χρόνο ή τον λόγο της ολοκληρωμένης εργασίας. Όμως, εάν μπορείτε να εκτιμήσετε τον τυπικό χρόνο για αυτήν τη λειτουργία, μπορείτε να ανατροφοδοτήσετε με μια γραμμή τυπικού χρόνου.

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

### Δείκτης αόριστης προόδου

Μια γραμμή κίνησης δείχνει μόνο ότι μια λειτουργία συνεχίζεται, όχι πόσο θα κρατήσει. Ένα παράδειγμα είναι ο "παλμός" σε έναν περιηγητή ιστού. Οι γραμμές αόριστης προόδου είναι ο λιγότερο ακριβής τύπος γραμμής προόδου.

Μια απλή γραμμή προόδου 'αόριστου χρόνου'· ο ολισθητής μετακινείται από αριστερά προς τα δεξιά και πάλι πίσω μέχρι την ολοκλήρωση της λειτουργίας

Ένας απλός διάλογος προόδου 'ενδιάμεσου χρόνου', που εμφανίζει έναν ολισθητή να κινείται μπρος-πίσω μέχρι να ολοκληρωθεί η λειτουργία

Χρήση μιας γραμμής αόριστης προόδου για ανάδραση μόνο για λειτουργίες των οποίων η διάρκεια δεν μπορεί να εκτιμηθεί καθόλου.

## Γραμμές κατάστασης

Μια γραμμή κατάστασης είναι μια περιοχή στο τέλος ενός παραθύρου που μπορεί να χρησιμοποιηθεί για την προβολή σύντομων πληροφοριών για την εφαρμογή.

Μία απλή γραμμή κατάστασης

Μια γραμμή κατάστασης στο τέλος του παραθύρου εγγράφου, που εμφανίζει το τρέχον επίπεδο εστίασης και ένα μήνυμα κατάστασης που δείχνει ότι το έγγραφο τροποποιήθηκε από την τελευταία αποθήκευσή του

Κατευθυντήριες γραμμές

- Χρησιμοποιήστε γραμμές κατάστασης μόνο σε εφαρμογή ή παράθυρα εγγράφου. Μην τις χρησιμοποιείτε σε διαλόγους, ειδοποιήσεις ή άλλα δευτερεύοντα παράθυρα.

- Τοποθετήστε μόνο μια γραμμή κατάστασης στο τέλος ενός παραθύρου.

- Χρησιμοποιήστε γραμμές κατάστασης μόνο για προβολή μη κρίσιμων πληροφοριών. Αυτό μπορεί να περιλαμβάνει:

  - γενικές πληροφορίες για το έγγραφο ή την εφαρμογή. Για παράδειγμα, η κατάσταση τρέχουσας σύνδεσης σε μια εφαρμογή δικτύου, ή το μέγεθος του τρέχοντος εγγράφου σε έναν επεξεργαστή κειμένου.

  - πληροφορίες για την εργασία του χρήστη που εκτελούνται τώρα. Για παράδειγμα, ενώ χρησιμοποιείτε το εργαλείο επιλογής σε μια εφαρμογή σχεδίασης, "κρατήστε πατημένο το Shift για επέκταση της επιλογής"

  - πρόοδο μιας λειτουργίας παρασκηνίου. Για παράδειγμα, "αποστολή στον εκτυπωτή", "σελίδα εκτύπωσης 10 από 20", "ολοκλήρωση εκτύπωσης".

  - μια περιγραφή του ελέγχου ή της περιοχής του παραθύρου κάτω από τον δείκτη ποντικιού. Για παράδειγμα, "απόθεση αρχείων εδώ για ανέβασμα τους"

  Να θυμάστε ότι οι γραμμές κατάστασης είναι κανονικά στην περιφερειακή όραση του χρήστη, και μπορεί ακόμα και να απενεργοποιηθεί ολότελα χρησιμοποιώντας το στοιχείο μενού της εφαρμογής προβολή γραμμή κατάστασης. Ο χρήστης μπορεί συνεπώς να μην κοιτάξει ποτέ οτιδήποτε εμφανίζετε εκεί, εκτός και γνωρίζουν πότε και πού να το κοιτάξουν.

- Όταν δεν υπάρχει ενδιαφέρουσα κατάσταση να αναφερθεί, αφήστε το πλαίσιο της γραμμής κατάστασης κενό αντί να εμφανίσετε κάτι χωρίς πληροφορία όπως "έτοιμο". Έτσι, όταν εμφανίζεται κάτι ενδιαφέρον στη γραμμή κατάστασης, ο χρήστης είναι πιο πιθανό να το παρατηρήσει.

- Εάν θέλετε να κάνετε όλη ή μέρος της γραμμής κατάστασης διαδραστική, χρησιμοποιήστε τις ακόλουθες συμβάσεις:

  - Ένθετη εμφάνιση για περιοχές που αποκρίνονται σε διπλό πάτημα

  - Επίπεδη εμφάνιση για περιοχές που δεν είναι διαδραστικές

  Στο η εμφάνιση δείχνει ότι η αριστερή περιοχή θα αποκριθεί σε ένα διπλό πάτημα (ίσως αποθηκεύοντας το έγγραφο) και ο δείκτης προόδου στα δεξιά είναι μη διαδραστικός.

  Μία διαδραστική γραμμή κατάστασης

  Μια γραμμή κατάστασης με πλαίσιο κειμένου που αποκρίνεται σε διπλοπάτημα, ένα κουμπί που αποκρίνεται σε μονό πάτημα και μια μη διαδραστική περιοχή προόδου

  Βεβαιωθείτε ότι το διπλοπάτημα στην περιοχή κατάστασης δεν δίνει καμιά λειτουργία που είναι επίσης διαθέσιμη στη γραμμή μενού της κύριας εφαρμογής, ή με κάποιο άλλο προσβάσιμο μέσο.

- Δώστε μια λαβή συρσίματος στην κάτω δεξιά γωνία της γραμμής κατάστασης των κλιμακώσιμων παραθύρων. Υποκλάσεις του GtkStatusbar πρέπει να χρησιμοποιούν την παρεχόμενη λαβή συρσίματος από αυτήν την κλάση. Μια επανεφαρμογή της γραμμής κατάστασης, που αποθαρρύνεται, πρέπει επίσης να επανεφαρμόζει τη λαβή συρσίματος GtkStatusbar και στην εμφάνιση και τη συνάρτηση.

## Πλαίσια και διαχωριστές

Ένα πλαίσιο είναι ένα κουτί με έναν τίτλο που μπορείτε να σχεδιάσετε με ελέγχους για να τους οργανώσετε σε λειτουργικές ομάδες. Ένας διαχωριστής είναι μια μονή οριζόντια ή κάθετη γραμμή που μπορείτε να χρησιμοποιήσετε για διαίρεση παραθύρων σε λειτουργικές ομάδες.

Τα πλαίσια με ένα περίγραμμα γύρω από την περίμετρο τους χρησιμοποιούνται παραδοσιακά για να δείξουν ομάδες σχετικών ελέγχων. Αυτό είναι πλεονεκτικό επειδή διαχωρίζει φυσικά ανόμοιους ελέγχους και επίσης αποφεύγει την επανάληψη της ετικέτας του πλαισίου σε ξεχωριστές ετικέτες ελέγχων μέλους. Δυστυχώς, προσθέτουν οπτικό θόρυβο που μπορεί και να κάνει ένα παράθυρο να φαίνεται πιο σύνθετο από ότι είναι πραγματικά και να μειώσει την ικανότητα γρήγορης σάρωσης στοιχείων του παραθύρου.

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

Προτιμητέα τεχνοτροπία πλαισίου, χρησιμοποιώντας έντονες ετικέτες, διάκενο και εσοχές

Το πλαίσιο εμφανίζει την προτιμώμενη τεχνοτροπία που περιγράφεται παραπάνω

Παραδοσιακή τεχνοτροπία πλαισίου, χρησιμοποιώντας περιγράμματα (παρωχημένο)

Το πλαίσιο εμφανίζει την παραδοσιακή τεχνοτροπία που περιγράφεται παραπάνω

Κατευθυντήριες γραμμές

- Πριν την προσθήκη πλαισίου με ορατό περίγραμμα ή διαχωριστή σε οποιοδήποτε παράθυρο, σκεφτείτε προσεκτικά εάν το χρειάζεστε πραγματικά. Είναι συνήθως καλύτερα να μην το κάνετε, εάν οι ομάδες μπορούν να διαχωριστούν μόνο με κενό. Μην χρησιμοποιείτε πλαίσια και διαχωριστές για αντιστάθμιση φτωχής διάταξης ελέγχου ή στοίχισης.

- Μην ανακατεύετε ομάδες με και χωρίς πλαίσια στο ίδιο παράθυρο.

- Μην βάζετε ένα πλαίσιο μέσα σε ένα άλλο. Αυτό καταλήγει σε οπτική αταξία.

- Εάν όλα τα στοιχεία σε μια ομάδα είναι ανενεργά, απενεργοποιήστε και τον τίτλο της ομάδας.